Merge "Rename test_only_no_hashtree to generate_hashtree" into sc-dev
diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go
index 792193f..1c7ad78 100644
--- a/java/bootclasspath_fragment.go
+++ b/java/bootclasspath_fragment.go
@@ -516,7 +516,16 @@
 	// Only create configs for updatable boot jars. Non-updatable boot jars must be part of the
 	// platform_bootclasspath's classpath proto config to guarantee that they come before any
 	// updatable jars at runtime.
-	return global.UpdatableBootJars.Filter(stems)
+	jars := global.UpdatableBootJars.Filter(stems)
+
+	// TODO(satayev): for apex_test we want to include all contents unconditionally to classpaths
+	// config. However, any test specific jars would not be present in UpdatableBootJars. Instead,
+	// we should check if we are creating a config for apex_test via ApexInfo and amend the values.
+	// This is an exception to support end-to-end test for SdkExtensions, until such support exists.
+	if android.InList("test_framework-sdkextensions", stems) {
+		jars = jars.Append("com.android.sdkext", "test_framework-sdkextensions")
+	}
+	return jars
 }
 
 func (b *BootclasspathFragmentModule) getImageConfig(ctx android.EarlyModuleContext) *bootImageConfig {
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 56e6247..869a598 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -425,23 +425,6 @@
 	}
 	srcFiles = filterByPackage(srcFiles, j.properties.Filter_packages)
 
-	// While metalava needs package html files, it does not need them to be explicit on the command
-	// line. javadoc complains if it receives html files on the command line. The filter
-	// below excludes html files from the rsp file metalava. Note that the html
-	// files are still included as implicit inputs for successful remote execution and correct
-	// incremental builds.
-	filterHtml := func(srcs []android.Path) []android.Path {
-		filtered := []android.Path{}
-		for _, src := range srcs {
-			if src.Ext() == ".html" {
-				continue
-			}
-			filtered = append(filtered, src)
-		}
-		return filtered
-	}
-	srcFiles = filterHtml(srcFiles)
-
 	aidlFlags := j.collectAidlFlags(ctx, deps)
 	srcFiles = j.genSources(ctx, srcFiles, aidlFlags)
 
diff --git a/java/droidstubs.go b/java/droidstubs.go
index 28f233e..eed2528 100644
--- a/java/droidstubs.go
+++ b/java/droidstubs.go
@@ -393,22 +393,11 @@
 }
 
 func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersion javaVersion, srcs android.Paths,
-	srcJarList android.Path, bootclasspath, classpath classpath, sourcepaths android.Paths,
-	homeDir android.WritablePath) *android.RuleBuilderCommand {
+	srcJarList android.Path, bootclasspath, classpath classpath, homeDir android.WritablePath) *android.RuleBuilderCommand {
 	rule.Command().Text("rm -rf").Flag(homeDir.String())
 	rule.Command().Text("mkdir -p").Flag(homeDir.String())
 
-	var cmd *android.RuleBuilderCommand
-	if len(sourcepaths) > 0 {
-		// We are passing the sourcepaths as an argument to metalava below, but the directories may
-		// not exist already (if they do not contain any listed inputs for metalava). Note that this
-		// is in a rule.SboxInputs()rule, so we are not modifying the actual source tree by creating
-		// these directories.
-		cmd = rule.Command()
-		cmd.Text("mkdir -p").Flags(cmd.PathsForInputs(sourcepaths))
-	}
-
-	cmd = rule.Command()
+	cmd := rule.Command()
 	cmd.FlagWithArg("ANDROID_PREFS_ROOT=", homeDir.String())
 
 	if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") {
@@ -441,13 +430,6 @@
 		cmd.FlagWithInputList("-classpath ", classpath.Paths(), ":")
 	}
 
-	if len(sourcepaths) > 0 {
-		// TODO(b/153703940): Pass .html files to metalava and remove this argument.
-		cmd.FlagWithList("-sourcepath ", sourcepaths.Strings(), ":")
-	} else {
-		cmd.FlagWithArg("-sourcepath ", `""`)
-	}
-
 	cmd.Flag("--no-banner").
 		Flag("--color").
 		Flag("--quiet").
@@ -491,7 +473,7 @@
 
 	homeDir := android.PathForModuleOut(ctx, "metalava", "home")
 	cmd := metalavaCmd(ctx, rule, javaVersion, d.Javadoc.srcFiles, srcJarList,
-		deps.bootClasspath, deps.classpath, d.Javadoc.sourcepaths, homeDir)
+		deps.bootClasspath, deps.classpath, homeDir)
 	cmd.Implicits(d.Javadoc.implicits)
 
 	d.stubsFlags(ctx, cmd, stubsDir)