diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/aar.go | 37 | ||||
-rw-r--r-- | java/app_test.go | 169 | ||||
-rw-r--r-- | java/base.go | 97 | ||||
-rw-r--r-- | java/device_host_converter_test.go | 13 | ||||
-rw-r--r-- | java/dex_test.go | 18 | ||||
-rw-r--r-- | java/fuzz_test.go | 4 | ||||
-rw-r--r-- | java/java.go | 20 | ||||
-rw-r--r-- | java/java_test.go | 83 | ||||
-rw-r--r-- | java/kotlin_test.go | 79 | ||||
-rw-r--r-- | java/sdk_library_test.go | 35 | ||||
-rw-r--r-- | java/sdk_test.go | 18 | ||||
-rw-r--r-- | java/testing.go | 2 |
12 files changed, 218 insertions, 357 deletions
diff --git a/java/aar.go b/java/aar.go index 9779d7cc3..976e4fcb1 100644 --- a/java/aar.go +++ b/java/aar.go @@ -1479,12 +1479,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { completeStaticLibsResourceJars := depset.New(depset.PREORDER, nil, transitiveStaticLibsResourceJars) var implementationJarFile android.Path - var combineJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - combineJars = completeStaticLibsImplementationJars.ToList() - } else { - combineJars = append(android.Paths{classpathFile}, staticJars...) - } + combineJars := completeStaticLibsImplementationJars.ToList() if len(combineJars) > 1 { implementationJarOutputPath := android.PathForModuleOut(ctx, "combined", jarName) @@ -1495,12 +1490,8 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { } var resourceJarFile android.Path - var resourceJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - resourceJars = completeStaticLibsResourceJars.ToList() - } else { - resourceJars = staticResourceJars - } + resourceJars := completeStaticLibsResourceJars.ToList() + if len(resourceJars) > 1 { combinedJar := android.PathForModuleOut(ctx, "res-combined", jarName) TransformJarsToJar(ctx, combinedJar, "for resources", resourceJars, android.OptionalPath{}, @@ -1511,12 +1502,8 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { } // merge implementation jar with resources if necessary - var implementationAndResourcesJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - implementationAndResourcesJars = append(slices.Clone(resourceJars), combineJars...) - } else { - implementationAndResourcesJars = android.PathsIfNonNil(resourceJarFile, implementationJarFile) - } + implementationAndResourcesJars := append(slices.Clone(resourceJars), combineJars...) + var implementationAndResourcesJar android.Path if len(implementationAndResourcesJars) > 1 { combinedJar := android.PathForModuleOut(ctx, "withres", jarName) @@ -1531,12 +1518,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource a.implementationAndResourcesJarFile = implementationAndResourcesJar.WithoutRel() - var headerJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - headerJars = completeStaticLibsHeaderJars.ToList() - } else { - headerJars = append(android.Paths{classpathFile}, staticHeaderJars...) - } + headerJars := completeStaticLibsHeaderJars.ToList() if len(headerJars) > 1 { headerJarFile := android.PathForModuleOut(ctx, "turbine-combined", jarName) TransformJarsToJar(ctx, headerJarFile, "combine header jars", headerJars, android.OptionalPath{}, false, nil, nil) @@ -1545,12 +1527,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { a.headerJarFile = headerJars[0] } - if ctx.Config().UseTransitiveJarsInClasspath() { - ctx.CheckbuildFile(classpathFile) - } else { - ctx.CheckbuildFile(a.headerJarFile) - ctx.CheckbuildFile(a.implementationJarFile) - } + ctx.CheckbuildFile(classpathFile) javaInfo := &JavaInfo{ HeaderJars: android.PathsIfNonNil(a.headerJarFile), diff --git a/java/app_test.go b/java/app_test.go index 3d88604ab..5f5f04d78 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -887,15 +887,24 @@ func TestAndroidResourceProcessor(t *testing.T) { }, appSrcJars: []string{"out/soong/.intermediates/app/android_common/gen/android/R.srcjar"}, appClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar", - "out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/shared/android_common/turbine/shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", + "out/soong/.intermediates/direct/android_common/turbine/direct.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, appCombined: []string{ "out/soong/.intermediates/app/android_common/javac/app.jar", - "out/soong/.intermediates/direct/android_common/combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar", + "out/soong/.intermediates/direct/android_common/javac/direct.jar", + "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, directResources: nil, @@ -908,21 +917,23 @@ func TestAndroidResourceProcessor(t *testing.T) { directImports: []string{"out/soong/.intermediates/default/java/framework-res/android_common/package-res.apk"}, directSrcJars: []string{"out/soong/.intermediates/direct/android_common/gen/android/R.srcjar"}, directClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, directCombined: []string{ "out/soong/.intermediates/direct/android_common/javac/direct.jar", "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"}, transitiveOverlays: nil, transitiveImports: []string{"out/soong/.intermediates/default/java/framework-res/android_common/package-res.apk"}, transitiveSrcJars: []string{"out/soong/.intermediates/transitive/android_common/gen/android/R.srcjar"}, - transitiveClasspath: []string{"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar"}, + transitiveClasspath: []string{"out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar"}, transitiveCombined: nil, sharedResources: nil, @@ -936,9 +947,9 @@ func TestAndroidResourceProcessor(t *testing.T) { }, sharedSrcJars: []string{"out/soong/.intermediates/shared/android_common/gen/android/R.srcjar"}, sharedClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/shared_transitive_shared/android_common/turbine-combined/shared_transitive_shared.jar", - "out/soong/.intermediates/shared_transitive_static/android_common/turbine-combined/shared_transitive_static.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/shared_transitive_shared/android_common/turbine/shared_transitive_shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", }, sharedCombined: []string{ "out/soong/.intermediates/shared/android_common/javac/shared.jar", @@ -985,17 +996,26 @@ func TestAndroidResourceProcessor(t *testing.T) { }, appSrcJars: nil, appClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/app/android_common/busybox/R.jar", - "out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar", - "out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar", + "out/soong/.intermediates/shared/android_common/turbine/shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", + "out/soong/.intermediates/direct/android_common/turbine/direct.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, appCombined: []string{ "out/soong/.intermediates/app/android_common/javac/app.jar", "out/soong/.intermediates/app/android_common/busybox/R.jar", - "out/soong/.intermediates/direct/android_common/combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar", + "out/soong/.intermediates/direct/android_common/javac/direct.jar", + "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, directResources: nil, @@ -1008,18 +1028,20 @@ func TestAndroidResourceProcessor(t *testing.T) { }, directSrcJars: nil, directClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/direct/android_common/busybox/R.jar", "out/soong/.intermediates/transitive/android_common/busybox/R.jar", "out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar", "out/soong/.intermediates/transitive_import/android_common/busybox/R.jar", - "out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, directCombined: []string{ "out/soong/.intermediates/direct/android_common/javac/direct.jar", "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"}, @@ -1027,7 +1049,7 @@ func TestAndroidResourceProcessor(t *testing.T) { transitiveImports: []string{"out/soong/.intermediates/default/java/framework-res/android_common/package-res.apk"}, transitiveSrcJars: nil, transitiveClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/transitive/android_common/busybox/R.jar", }, transitiveCombined: nil, @@ -1041,12 +1063,12 @@ func TestAndroidResourceProcessor(t *testing.T) { }, sharedSrcJars: nil, sharedClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/shared/android_common/busybox/R.jar", "out/soong/.intermediates/shared_transitive_static/android_common/busybox/R.jar", "out/soong/.intermediates/shared_transitive_shared/android_common/busybox/R.jar", - "out/soong/.intermediates/shared_transitive_shared/android_common/turbine-combined/shared_transitive_shared.jar", - "out/soong/.intermediates/shared_transitive_static/android_common/turbine-combined/shared_transitive_static.jar", + "out/soong/.intermediates/shared_transitive_shared/android_common/turbine/shared_transitive_shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", }, sharedCombined: []string{ "out/soong/.intermediates/shared/android_common/javac/shared.jar", @@ -1090,18 +1112,27 @@ func TestAndroidResourceProcessor(t *testing.T) { }, appSrcJars: nil, appClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", // R.jar has to come before direct.jar "out/soong/.intermediates/app/android_common/busybox/R.jar", - "out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar", - "out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar", + "out/soong/.intermediates/shared/android_common/turbine/shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", + "out/soong/.intermediates/direct/android_common/turbine/direct.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, appCombined: []string{ "out/soong/.intermediates/app/android_common/javac/app.jar", "out/soong/.intermediates/app/android_common/busybox/R.jar", - "out/soong/.intermediates/direct/android_common/combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar", + "out/soong/.intermediates/direct/android_common/javac/direct.jar", + "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, dontVerifyDirect: true, @@ -1133,15 +1164,24 @@ func TestAndroidResourceProcessor(t *testing.T) { }, appSrcJars: []string{"out/soong/.intermediates/app/android_common/gen/android/R.srcjar"}, appClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar", - "out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/shared/android_common/turbine/shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", + "out/soong/.intermediates/direct/android_common/turbine/direct.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, appCombined: []string{ "out/soong/.intermediates/app/android_common/javac/app.jar", - "out/soong/.intermediates/direct/android_common/combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar", + "out/soong/.intermediates/direct/android_common/javac/direct.jar", + "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, directResources: nil, @@ -1154,17 +1194,19 @@ func TestAndroidResourceProcessor(t *testing.T) { }, directSrcJars: nil, directClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/direct/android_common/busybox/R.jar", "out/soong/.intermediates/transitive_import_dep/android_common/busybox/R.jar", "out/soong/.intermediates/transitive_import/android_common/busybox/R.jar", - "out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, directCombined: []string{ "out/soong/.intermediates/direct/android_common/javac/direct.jar", "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, dontVerifyTransitive: true, @@ -1195,15 +1237,24 @@ func TestAndroidResourceProcessor(t *testing.T) { }, appSrcJars: []string{"out/soong/.intermediates/app/android_common/gen/android/R.srcjar"}, appClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/shared/android_common/turbine-combined/shared.jar", - "out/soong/.intermediates/direct/android_common/turbine-combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/turbine-combined/direct_import.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/shared/android_common/turbine/shared.jar", + "out/soong/.intermediates/shared_transitive_static/android_common/turbine/shared_transitive_static.jar", + "out/soong/.intermediates/direct/android_common/turbine/direct.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, appCombined: []string{ "out/soong/.intermediates/app/android_common/javac/app.jar", - "out/soong/.intermediates/direct/android_common/combined/direct.jar", - "out/soong/.intermediates/direct_import/android_common/combined/direct_import.jar", + "out/soong/.intermediates/direct/android_common/javac/direct.jar", + "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", + "out/soong/.intermediates/direct_import/android_common/aar/direct_import.jar", + "out/soong/.intermediates/direct_import_dep/android_common/aar/direct_import_dep.jar", }, directResources: nil, @@ -1216,14 +1267,16 @@ func TestAndroidResourceProcessor(t *testing.T) { directImports: []string{"out/soong/.intermediates/default/java/framework-res/android_common/package-res.apk"}, directSrcJars: []string{"out/soong/.intermediates/direct/android_common/gen/android/R.srcjar"}, directClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", - "out/soong/.intermediates/transitive/android_common/turbine-combined/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/turbine-combined/transitive_import.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", + "out/soong/.intermediates/transitive/android_common/turbine/transitive.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, directCombined: []string{ "out/soong/.intermediates/direct/android_common/javac/direct.jar", "out/soong/.intermediates/transitive/android_common/javac/transitive.jar", - "out/soong/.intermediates/transitive_import/android_common/combined/transitive_import.jar", + "out/soong/.intermediates/transitive_import/android_common/aar/transitive_import.jar", + "out/soong/.intermediates/transitive_import_dep/android_common/aar/transitive_import_dep.jar", }, transitiveResources: []string{"out/soong/.intermediates/transitive/android_common/aapt2/transitive/res/values_strings.arsc.flat"}, @@ -1231,7 +1284,7 @@ func TestAndroidResourceProcessor(t *testing.T) { transitiveImports: []string{"out/soong/.intermediates/default/java/framework-res/android_common/package-res.apk"}, transitiveSrcJars: nil, transitiveClasspath: []string{ - "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine-combined/android_stubs_current.jar", + "out/soong/.intermediates/default/java/android_stubs_current/android_common/turbine/android_stubs_current.jar", "out/soong/.intermediates/transitive/android_common/busybox/R.jar", }, transitiveCombined: nil, @@ -2996,14 +3049,14 @@ func TestOverrideAndroidAppDependency(t *testing.T) { // Verify baz, which depends on the overridden module foo, has the correct classpath javac arg. javac := ctx.ModuleForTests(t, "baz", "android_common").Rule("javac") - fooTurbine := "out/soong/.intermediates/foo/android_common/turbine-combined/foo.jar" + fooTurbine := "out/soong/.intermediates/foo/android_common/turbine/foo.jar" if !strings.Contains(javac.Args["classpath"], fooTurbine) { t.Errorf("baz classpath %v does not contain %q", javac.Args["classpath"], fooTurbine) } // Verify qux, which depends on the overriding module bar, has the correct classpath javac arg. javac = ctx.ModuleForTests(t, "qux", "android_common").Rule("javac") - barTurbine := "out/soong/.intermediates/foo/android_common_bar/turbine-combined/foo.jar" + barTurbine := "out/soong/.intermediates/foo/android_common_bar/turbine/foo.jar" if !strings.Contains(javac.Args["classpath"], barTurbine) { t.Errorf("qux classpath %v does not contain %q", javac.Args["classpath"], barTurbine) } @@ -3080,7 +3133,7 @@ func TestOverrideAndroidTest(t *testing.T) { // Check if javac classpath has the correct jar file path. This checks instrumentation_for overrides. javac := variant.Rule("javac") - turbine := filepath.Join("out", "soong", ".intermediates", "foo", expected.targetVariant, "turbine-combined", "foo.jar") + turbine := filepath.Join("out", "soong", ".intermediates", "foo", expected.targetVariant, "turbine", "foo.jar") if !strings.Contains(javac.Args["classpath"], turbine) { t.Errorf("classpath %q does not contain %q", javac.Args["classpath"], turbine) } diff --git a/java/base.go b/java/base.go index fccc80691..0833831fc 100644 --- a/java/base.go +++ b/java/base.go @@ -1298,15 +1298,11 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath } j.headerJarFile = combinedHeaderJarFile - if ctx.Config().UseTransitiveJarsInClasspath() { - if len(localHeaderJars) > 0 { - ctx.CheckbuildFile(localHeaderJars...) - } else { - // There are no local sources or resources in this module, so there is nothing to checkbuild. - ctx.UncheckedModule() - } + if len(localHeaderJars) > 0 { + ctx.CheckbuildFile(localHeaderJars...) } else { - ctx.CheckbuildFile(j.headerJarFile) + // There are no local sources or resources in this module, so there is nothing to checkbuild. + ctx.UncheckedModule() } j.outputFile = j.headerJarFile @@ -1604,12 +1600,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath completeStaticLibsResourceJars := depset.New(depset.PREORDER, localResourceJars, deps.transitiveStaticLibsResourceJars) var combinedResourceJar android.Path - var resourceJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - resourceJars = completeStaticLibsResourceJars.ToList() - } else { - resourceJars = append(slices.Clone(localResourceJars), deps.staticResourceJars...) - } + resourceJars := completeStaticLibsResourceJars.ToList() if len(resourceJars) == 1 { combinedResourceJar = resourceJars[0] } else if len(resourceJars) > 0 { @@ -1630,12 +1621,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath completeStaticLibsImplementationJars := depset.New(depset.PREORDER, localImplementationJars, deps.transitiveStaticLibsImplementationJars) - var jars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - jars = completeStaticLibsImplementationJars.ToList() - } else { - jars = append(slices.Clone(localImplementationJars), deps.staticJars...) - } + jars := completeStaticLibsImplementationJars.ToList() jars = append(jars, extraDepCombinedJars...) @@ -1766,7 +1752,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath headerJarFile := android.PathForModuleOut(ctx, "javac-header", jarName) convertImplementationJarToHeaderJar(ctx, j.implementationJarFile, headerJarFile) j.headerJarFile = headerJarFile - if len(localImplementationJars) == 1 && ctx.Config().UseTransitiveJarsInClasspath() { + if len(localImplementationJars) == 1 { localHeaderJarFile := android.PathForModuleOut(ctx, "local-javac-header", jarName) convertImplementationJarToHeaderJar(ctx, localImplementationJars[0], localHeaderJarFile) localHeaderJars = append(localHeaderJars, localHeaderJarFile) @@ -1796,16 +1782,10 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath // merge implementation jar with resources if necessary var implementationAndResourcesJarsToCombine android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - resourceJars := completeStaticLibsResourceJars.ToList() - if len(resourceJars) > 0 { - implementationAndResourcesJarsToCombine = append(resourceJars, completeStaticLibsImplementationJarsToCombine.ToList()...) - implementationAndResourcesJarsToCombine = append(implementationAndResourcesJarsToCombine, extraDepCombinedJars...) - } - } else { - if combinedResourceJar != nil { - implementationAndResourcesJarsToCombine = android.Paths{combinedResourceJar, outputFile} - } + combinedResourceJars := completeStaticLibsResourceJars.ToList() + if len(combinedResourceJars) > 0 { + implementationAndResourcesJarsToCombine = slices.Concat(combinedResourceJars, + completeStaticLibsImplementationJarsToCombine.ToList(), extraDepCombinedJars) } if len(implementationAndResourcesJarsToCombine) > 0 { @@ -1855,18 +1835,9 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath } // merge dex jar with resources if necessary - var dexAndResourceJarsToCombine android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - resourceJars := completeStaticLibsResourceJars.ToList() - if len(resourceJars) > 0 { - dexAndResourceJarsToCombine = append(android.Paths{dexOutputFile}, resourceJars...) - } - } else { - if combinedResourceJar != nil { - dexAndResourceJarsToCombine = android.Paths{dexOutputFile, combinedResourceJar} - } - } - if len(dexAndResourceJarsToCombine) > 0 { + if len(combinedResourceJars) > 0 { + dexAndResourceJarsToCombine := append(android.Paths{dexOutputFile}, combinedResourceJars...) + combinedJar := android.PathForModuleOut(ctx, "dex-withres", jarName) TransformJarsToJar(ctx, combinedJar, "for dex resources", dexAndResourceJarsToCombine, android.OptionalPath{}, false, nil, nil) @@ -1938,18 +1909,13 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath j.collectTransitiveSrcFiles(ctx, srcFiles) - if ctx.Config().UseTransitiveJarsInClasspath() { - if len(localImplementationJars) > 0 || len(localResourceJars) > 0 || len(localHeaderJars) > 0 { - ctx.CheckbuildFile(localImplementationJars...) - ctx.CheckbuildFile(localResourceJars...) - ctx.CheckbuildFile(localHeaderJars...) - } else { - // There are no local sources or resources in this module, so there is nothing to checkbuild. - ctx.UncheckedModule() - } + if len(localImplementationJars) > 0 || len(localResourceJars) > 0 || len(localHeaderJars) > 0 { + ctx.CheckbuildFile(localImplementationJars...) + ctx.CheckbuildFile(localResourceJars...) + ctx.CheckbuildFile(localHeaderJars...) } else { - ctx.CheckbuildFile(j.implementationJarFile) - ctx.CheckbuildFile(j.headerJarFile) + // There are no local sources or resources in this module, so there is nothing to checkbuild. + ctx.UncheckedModule() } // Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource @@ -2116,13 +2082,8 @@ func (j *Module) compileJavaHeader(ctx android.ModuleContext, srcFiles, srcJars // Combine any static header libraries into classes-header.jar. If there is only // one input jar this step will be skipped. - var jars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - depSet := depset.New(depset.PREORDER, localHeaderJars, deps.transitiveStaticLibsHeaderJars) - jars = depSet.ToList() - } else { - jars = append(slices.Clone(localHeaderJars), deps.staticHeaderJars...) - } + depSet := depset.New(depset.PREORDER, localHeaderJars, deps.transitiveStaticLibsHeaderJars) + jars := depSet.ToList() // we cannot skip the combine step for now if there is only one jar // since we have to strip META-INF/TRANSITIVE dir from turbine.jar @@ -2634,14 +2595,12 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { deps.transitiveStaticLibsImplementationJars = transitiveStaticJarsImplementationLibs deps.transitiveStaticLibsResourceJars = transitiveStaticJarsResourceLibs - if ctx.Config().UseTransitiveJarsInClasspath() { - depSet := depset.New(depset.PREORDER, nil, transitiveClasspathHeaderJars) - deps.classpath = depSet.ToList() - depSet = depset.New(depset.PREORDER, nil, transitiveBootClasspathHeaderJars) - deps.bootClasspath = depSet.ToList() - depSet = depset.New(depset.PREORDER, nil, transitiveJava9ClasspathHeaderJars) - deps.java9Classpath = depSet.ToList() - } + depSet := depset.New(depset.PREORDER, nil, transitiveClasspathHeaderJars) + deps.classpath = depSet.ToList() + depSet = depset.New(depset.PREORDER, nil, transitiveBootClasspathHeaderJars) + deps.bootClasspath = depSet.ToList() + depSet = depset.New(depset.PREORDER, nil, transitiveJava9ClasspathHeaderJars) + deps.java9Classpath = depSet.ToList() if ctx.Device() { sdkDep := decodeSdkDep(ctx, android.SdkContext(j)) diff --git a/java/device_host_converter_test.go b/java/device_host_converter_test.go index 197bb9f95..42e3b4678 100644 --- a/java/device_host_converter_test.go +++ b/java/device_host_converter_test.go @@ -15,10 +15,11 @@ package java import ( - "android/soong/android" "slices" "strings" "testing" + + "android/soong/android" ) func TestDeviceForHost(t *testing.T) { @@ -54,12 +55,12 @@ func TestDeviceForHost(t *testing.T) { ctx, config := testJava(t, bp) deviceModule := ctx.ModuleForTests(t, "device_module", "android_common") - deviceTurbineCombined := deviceModule.Output("turbine-combined/device_module.jar") + deviceTurbine := deviceModule.Output("turbine/device_module.jar") deviceJavac := deviceModule.Output("javac/device_module.jar") deviceRes := deviceModule.Output("res/device_module.jar") deviceImportModule := ctx.ModuleForTests(t, "device_import_module", "android_common") - deviceImportCombined := deviceImportModule.Output("combined/device_import_module.jar") + deviceImportCombined := deviceImportModule.Output("local-combined/device_import_module.jar") hostModule := ctx.ModuleForTests(t, "host_module", config.BuildOSCommonTarget.String()) hostJavac := hostModule.Output("javac/host_module.jar") @@ -69,7 +70,7 @@ func TestDeviceForHost(t *testing.T) { // check classpath of host module with dependency on device_for_host_module expectedClasspath := "-classpath " + strings.Join(android.Paths{ - deviceTurbineCombined.Output, + deviceTurbine.Output, deviceImportCombined.Output, }.Strings(), ":") @@ -137,11 +138,11 @@ func TestHostForDevice(t *testing.T) { hostModule := ctx.ModuleForTests(t, "host_module", config.BuildOSCommonTarget.String()) hostJavac := hostModule.Output("javac/host_module.jar") - hostJavacHeader := hostModule.Output("javac-header/host_module.jar") + hostJavacHeader := hostModule.Output("local-javac-header/host_module.jar") hostRes := hostModule.Output("res/host_module.jar") hostImportModule := ctx.ModuleForTests(t, "host_import_module", config.BuildOSCommonTarget.String()) - hostImportCombined := hostImportModule.Output("combined/host_import_module.jar") + hostImportCombined := hostImportModule.Output("local-combined/host_import_module.jar") deviceModule := ctx.ModuleForTests(t, "device_module", "android_common") deviceJavac := deviceModule.Output("javac/device_module.jar") diff --git a/java/dex_test.go b/java/dex_test.go index 2126e42e8..66d801dcc 100644 --- a/java/dex_test.go +++ b/java/dex_test.go @@ -70,16 +70,17 @@ func TestR8(t *testing.T) { appR8 := app.Rule("r8") stableAppR8 := stableApp.Rule("r8") corePlatformAppR8 := corePlatformApp.Rule("r8") - libHeader := lib.Output("turbine-combined/lib.jar").Output - staticLibHeader := staticLib.Output("turbine-combined/static_lib.jar").Output + libHeader := lib.Output("turbine/lib.jar").Output + libCombinedHeader := lib.Output("turbine-combined/lib.jar").Output + staticLibHeader := staticLib.Output("turbine/static_lib.jar").Output android.AssertStringDoesContain(t, "expected lib header jar in app javac classpath", appJavac.Args["classpath"], libHeader.String()) android.AssertStringDoesContain(t, "expected static_lib header jar in app javac classpath", appJavac.Args["classpath"], staticLibHeader.String()) - android.AssertStringDoesContain(t, "expected lib header jar in app r8 classpath", - appR8.Args["r8Flags"], libHeader.String()) + android.AssertStringDoesContain(t, "expected lib combined header jar in app r8 classpath", + appR8.Args["r8Flags"], libCombinedHeader.String()) android.AssertStringDoesNotContain(t, "expected no static_lib header jar in app r8 classpath", appR8.Args["r8Flags"], staticLibHeader.String()) android.AssertStringDoesContain(t, "expected -ignorewarnings in app r8 flags", @@ -331,16 +332,17 @@ func TestD8(t *testing.T) { fooJavac := foo.Rule("javac") fooD8 := foo.Rule("d8") appD8 := app.Rule("d8") - libHeader := lib.Output("turbine-combined/lib.jar").Output - staticLibHeader := staticLib.Output("turbine-combined/static_lib.jar").Output + libHeader := lib.Output("turbine/lib.jar").Output + libCombinedHeader := lib.Output("turbine-combined/lib.jar").Output + staticLibHeader := staticLib.Output("turbine/static_lib.jar").Output android.AssertStringDoesContain(t, "expected lib header jar in foo javac classpath", fooJavac.Args["classpath"], libHeader.String()) android.AssertStringDoesContain(t, "expected static_lib header jar in foo javac classpath", fooJavac.Args["classpath"], staticLibHeader.String()) - android.AssertStringDoesContain(t, "expected lib header jar in foo d8 classpath", - fooD8.Args["d8Flags"], libHeader.String()) + android.AssertStringDoesContain(t, "expected lib combined header jar in foo d8 classpath", + fooD8.Args["d8Flags"], libCombinedHeader.String()) android.AssertStringDoesNotContain(t, "expected no static_lib header jar in foo javac classpath", fooD8.Args["d8Flags"], staticLibHeader.String()) diff --git a/java/fuzz_test.go b/java/fuzz_test.go index 8cbe873ad..735b8da93 100644 --- a/java/fuzz_test.go +++ b/java/fuzz_test.go @@ -72,8 +72,8 @@ func TestJavaFuzz(t *testing.T) { } baz := result.ModuleForTests(t, "baz", osCommonTarget).Rule("javac").Output.String() - barOut := filepath.Join("out", "soong", ".intermediates", "bar", osCommonTarget, "javac-header", "bar.jar") - bazOut := filepath.Join("out", "soong", ".intermediates", "baz", osCommonTarget, "javac-header", "baz.jar") + barOut := filepath.Join("out", "soong", ".intermediates", "bar", osCommonTarget, "local-javac-header", "bar.jar") + bazOut := filepath.Join("out", "soong", ".intermediates", "baz", osCommonTarget, "local-javac-header", "baz.jar") android.AssertStringDoesContain(t, "foo classpath", javac.Args["classpath"], barOut) android.AssertStringDoesContain(t, "foo classpath", javac.Args["classpath"], bazOut) diff --git a/java/java.go b/java/java.go index 45e55d53c..b9109ee94 100644 --- a/java/java.go +++ b/java/java.go @@ -3072,12 +3072,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { // file of the module to be named jarName. var outputFile android.Path combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName) - var implementationJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - implementationJars = completeStaticLibsImplementationJars.ToList() - } else { - implementationJars = append(slices.Clone(localJars), staticJars...) - } + implementationJars := completeStaticLibsImplementationJars.ToList() TransformJarsToJar(ctx, combinedImplementationJar, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) outputFile = combinedImplementationJar @@ -3100,12 +3095,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { if reuseImplementationJarAsHeaderJar { headerJar = outputFile } else { - var headerJars android.Paths - if ctx.Config().UseTransitiveJarsInClasspath() { - headerJars = completeStaticLibsHeaderJars.ToList() - } else { - headerJars = append(slices.Clone(localJars), staticHeaderJars...) - } + headerJars := completeStaticLibsHeaderJars.ToList() headerOutputFile := android.PathForModuleOut(ctx, "turbine-combined", jarName) TransformJarsToJar(ctx, headerOutputFile, "combine prebuilt header jars", headerJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) @@ -3169,11 +3159,7 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs) - if ctx.Config().UseTransitiveJarsInClasspath() { - ctx.CheckbuildFile(localJars...) - } else { - ctx.CheckbuildFile(outputFile) - } + ctx.CheckbuildFile(localJars...) if ctx.Device() { // Shared libraries deapexed from prebuilt apexes are no longer supported. diff --git a/java/java_test.go b/java/java_test.go index f097762eb..636a0c891 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -110,7 +110,7 @@ func defaultModuleToPath(name string) string { case strings.HasSuffix(name, ".jar"): return name default: - return filepath.Join("out", "soong", ".intermediates", defaultJavaDir, name, "android_common", "turbine-combined", name+".jar") + return filepath.Join("out", "soong", ".intermediates", defaultJavaDir, name, "android_common", "turbine", name+".jar") } } @@ -240,11 +240,6 @@ func TestSimple(t *testing.T) { srcs: ["d.java"], }` - frameworkTurbineCombinedJars := []string{ - "out/soong/.intermediates/default/java/ext/android_common/turbine-combined/ext.jar", - "out/soong/.intermediates/default/java/framework/android_common/turbine-combined/framework.jar", - } - frameworkTurbineJars := []string{ "out/soong/.intermediates/default/java/ext/android_common/turbine/ext.jar", "out/soong/.intermediates/default/java/framework/android_common/turbine/framework.jar", @@ -270,43 +265,6 @@ func TestSimple(t *testing.T) { preparer: android.NullFixturePreparer, fooJavacInputs: []string{"a.java"}, fooJavacClasspath: slices.Concat( - frameworkTurbineCombinedJars, - []string{ - "out/soong/.intermediates/bar/android_common/turbine-combined/bar.jar", - "out/soong/.intermediates/baz/android_common/turbine-combined/baz.jar", - }, - ), - fooCombinedInputs: []string{ - "out/soong/.intermediates/foo/android_common/javac/foo.jar", - "out/soong/.intermediates/baz/android_common/combined/baz.jar", - }, - - fooHeaderCombinedInputs: []string{ - "out/soong/.intermediates/foo/android_common/turbine/foo.jar", - "out/soong/.intermediates/baz/android_common/turbine-combined/baz.jar", - }, - - barJavacInputs: []string{"b.java"}, - barJavacClasspath: slices.Concat( - frameworkTurbineCombinedJars, - []string{ - "out/soong/.intermediates/quz/android_common/turbine-combined/quz.jar", - }, - ), - barCombinedInputs: []string{ - "out/soong/.intermediates/bar/android_common/javac/bar.jar", - "out/soong/.intermediates/quz/android_common/javac/quz.jar", - }, - barHeaderCombinedInputs: []string{ - "out/soong/.intermediates/bar/android_common/turbine/bar.jar", - "out/soong/.intermediates/quz/android_common/turbine-combined/quz.jar", - }, - }, - { - name: "transitive classpath", - preparer: PrepareForTestWithTransitiveClasspathEnabled, - fooJavacInputs: []string{"a.java"}, - fooJavacClasspath: slices.Concat( frameworkTurbineJars, []string{ "out/soong/.intermediates/bar/android_common/turbine/bar.jar", @@ -726,11 +684,11 @@ func TestPrebuilts(t *testing.T) { javac := fooModule.Rule("javac") combineJar := ctx.ModuleForTests(t, "foo", "android_common").Description("for javac") barModule := ctx.ModuleForTests(t, "bar", "android_common") - barJar := barModule.Output("combined/bar.jar").Output + barJar := barModule.Output("local-combined/bar.jar").Output bazModule := ctx.ModuleForTests(t, "baz", "android_common") - bazJar := bazModule.Output("combined/baz.jar").Output + bazJar := bazModule.Output("local-combined/baz.jar").Output sdklibStubsJar := ctx.ModuleForTests(t, "sdklib.stubs", "android_common"). - Output("combined/sdklib.stubs.jar").Output + Output("local-combined/sdklib.stubs.jar").Output fooLibrary := fooModule.Module().(*Library) assertDeepEquals(t, "foo unique sources incorrect", @@ -858,7 +816,7 @@ func TestDefaults(t *testing.T) { t.Errorf(`foo inputs %v != ["a.java"]`, javac.Inputs) } - barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine-combined", "bar.jar") + barTurbine := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine", "bar.jar") if !strings.Contains(javac.Args["classpath"], barTurbine) { t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], barTurbine) } @@ -1047,7 +1005,7 @@ func TestIncludeSrcs(t *testing.T) { t.Errorf("bar combined resource jars %v does not contain %q", w, g) } - if g, w := barResCombined.Output.String(), bar.Inputs.Strings(); !inList(g, w) { + if g, w := barRes.Output.String(), bar.Inputs.Strings(); !inList(g, w) { t.Errorf("bar combined jars %v does not contain %q", w, g) } @@ -1131,7 +1089,7 @@ func TestTurbine(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, "foo inputs", []string{"a.java"}, fooTurbine.Inputs) - fooHeaderJar := filepath.Join("out", "soong", ".intermediates", "foo", "android_common", "turbine-combined", "foo.jar") + fooHeaderJar := filepath.Join("out", "soong", ".intermediates", "foo", "android_common", "turbine", "foo.jar") barTurbineJar := filepath.Join("out", "soong", ".intermediates", "bar", "android_common", "turbine", "bar.jar") android.AssertStringDoesContain(t, "bar turbine classpath", barTurbine.Args["turbineFlags"], fooHeaderJar) android.AssertStringDoesContain(t, "bar javac classpath", barJavac.Args["classpath"], fooHeaderJar) @@ -1251,16 +1209,18 @@ func TestJavaImport(t *testing.T) { source := ctx.ModuleForTests(t, "source_library", "android_common") sourceJar := source.Output("javac/source_library.jar") - sourceHeaderJar := source.Output("turbine-combined/source_library.jar") + sourceHeaderJar := source.Output("turbine/source_library.jar") + sourceCombinedHeaderJar := source.Output("turbine-combined/source_library.jar") sourceJavaInfo, _ := android.OtherModuleProvider(ctx, source.Module(), JavaInfoProvider) // The source library produces separate implementation and header jars android.AssertPathsRelativeToTopEquals(t, "source library implementation jar", []string{sourceJar.Output.String()}, sourceJavaInfo.ImplementationAndResourcesJars) android.AssertPathsRelativeToTopEquals(t, "source library header jar", - []string{sourceHeaderJar.Output.String()}, sourceJavaInfo.HeaderJars) + []string{sourceCombinedHeaderJar.Output.String()}, sourceJavaInfo.HeaderJars) importWithNoDeps := ctx.ModuleForTests(t, "import_with_no_deps", "android_common") + importWithNoDepsLocalJar := importWithNoDeps.Output("local-combined/import_with_no_deps.jar") importWithNoDepsJar := importWithNoDeps.Output("combined/import_with_no_deps.jar") importWithNoDepsJavaInfo, _ := android.OtherModuleProvider(ctx, importWithNoDeps.Module(), JavaInfoProvider) @@ -1270,10 +1230,14 @@ func TestJavaImport(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, "import with no deps header jar", []string{importWithNoDepsJar.Output.String()}, importWithNoDepsJavaInfo.HeaderJars) android.AssertPathsRelativeToTopEquals(t, "import with no deps combined inputs", - []string{"no_deps.jar"}, importWithNoDepsJar.Inputs) + []string{importWithNoDepsLocalJar.Output.String()}, importWithNoDepsJar.Inputs) + android.AssertPathsRelativeToTopEquals(t, "import with no deps local combined inputs", + []string{"no_deps.jar"}, importWithNoDepsLocalJar.Inputs) importWithSourceDeps := ctx.ModuleForTests(t, "import_with_source_deps", "android_common") + importWithSourceDepsLocalJar := importWithSourceDeps.Output("local-combined/import_with_source_deps.jar") importWithSourceDepsJar := importWithSourceDeps.Output("combined/import_with_source_deps.jar") + importWithSourceDepsLocalHeaderJar := importWithSourceDeps.Output("local-combined/import_with_source_deps.jar") importWithSourceDepsHeaderJar := importWithSourceDeps.Output("turbine-combined/import_with_source_deps.jar") importWithSourceDepsJavaInfo, _ := android.OtherModuleProvider(ctx, importWithSourceDeps.Module(), JavaInfoProvider) @@ -1283,11 +1247,16 @@ func TestJavaImport(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, "import with source deps header jar", []string{importWithSourceDepsHeaderJar.Output.String()}, importWithSourceDepsJavaInfo.HeaderJars) android.AssertPathsRelativeToTopEquals(t, "import with source deps combined implementation jar inputs", - []string{"source_deps.jar", sourceJar.Output.String()}, importWithSourceDepsJar.Inputs) + []string{importWithSourceDepsLocalJar.Output.String(), sourceJar.Output.String()}, importWithSourceDepsJar.Inputs) android.AssertPathsRelativeToTopEquals(t, "import with source deps combined header jar inputs", - []string{"source_deps.jar", sourceHeaderJar.Output.String()}, importWithSourceDepsHeaderJar.Inputs) + []string{importWithSourceDepsLocalHeaderJar.Output.String(), sourceHeaderJar.Output.String()}, importWithSourceDepsHeaderJar.Inputs) + android.AssertPathsRelativeToTopEquals(t, "import with source deps local combined implementation jar inputs", + []string{"source_deps.jar"}, importWithSourceDepsLocalJar.Inputs) + android.AssertPathsRelativeToTopEquals(t, "import with source deps local combined header jar inputs", + []string{"source_deps.jar"}, importWithSourceDepsLocalHeaderJar.Inputs) importWithImportDeps := ctx.ModuleForTests(t, "import_with_import_deps", "android_common") + importWithImportDepsLocalJar := importWithImportDeps.Output("local-combined/import_with_import_deps.jar") importWithImportDepsJar := importWithImportDeps.Output("combined/import_with_import_deps.jar") importWithImportDepsJavaInfo, _ := android.OtherModuleProvider(ctx, importWithImportDeps.Module(), JavaInfoProvider) @@ -1297,7 +1266,9 @@ func TestJavaImport(t *testing.T) { android.AssertPathsRelativeToTopEquals(t, "import with import deps header jar", []string{importWithImportDepsJar.Output.String()}, importWithImportDepsJavaInfo.HeaderJars) android.AssertPathsRelativeToTopEquals(t, "import with import deps combined implementation jar inputs", - []string{"import_deps.jar", importWithNoDepsJar.Output.String()}, importWithImportDepsJar.Inputs) + []string{importWithImportDepsLocalJar.Output.String(), importWithNoDepsLocalJar.Output.String()}, importWithImportDepsJar.Inputs) + android.AssertPathsRelativeToTopEquals(t, "import with import deps local combined implementation jar inputs", + []string{"import_deps.jar"}, importWithImportDepsLocalJar.Inputs) } var compilerFlagsTestCases = []struct { @@ -1364,6 +1335,7 @@ func TestCompilerFlags(t *testing.T) { // TODO(jungjw): Consider making this more robust by ignoring path order. func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName string, expected string) { + t.Helper() variables := ctx.ModuleForTests(t, moduleName, "android_common").VariablesForTestsRelativeToTop() flags := strings.Split(variables["javacFlags"], " ") got := "" @@ -3107,7 +3079,6 @@ func TestCoverage(t *testing.T) { result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, prepareForTestWithFrameworkJacocoInstrumentation, - PrepareForTestWithTransitiveClasspathEnabled, ).RunTestWithBp(t, ` android_app { name: "foo", diff --git a/java/kotlin_test.go b/java/kotlin_test.go index c7b1ece98..4b56cff1c 100644 --- a/java/kotlin_test.go +++ b/java/kotlin_test.go @@ -50,13 +50,6 @@ func TestKotlin(t *testing.T) { srcs: ["d.kt"], }` - kotlinStdlibTurbineCombinedJars := []string{ - "out/soong/.intermediates/default/java/kotlin-stdlib/android_common/turbine-combined/kotlin-stdlib.jar", - "out/soong/.intermediates/default/java/kotlin-stdlib-jdk7/android_common/turbine-combined/kotlin-stdlib-jdk7.jar", - "out/soong/.intermediates/default/java/kotlin-stdlib-jdk8/android_common/turbine-combined/kotlin-stdlib-jdk8.jar", - "out/soong/.intermediates/default/java/kotlin-annotations/android_common/turbine-combined/kotlin-annotations.jar", - } - kotlinStdlibTurbineJars := []string{ "out/soong/.intermediates/default/java/kotlin-stdlib/android_common/turbine/kotlin-stdlib.jar", "out/soong/.intermediates/default/java/kotlin-stdlib-jdk7/android_common/turbine/kotlin-stdlib-jdk7.jar", @@ -71,21 +64,11 @@ func TestKotlin(t *testing.T) { "out/soong/.intermediates/default/java/kotlin-annotations/android_common/javac/kotlin-annotations.jar", } - bootclasspathTurbineCombinedJars := []string{ - "out/soong/.intermediates/default/java/stable.core.platform.api.stubs/android_common/turbine-combined/stable.core.platform.api.stubs.jar", - "out/soong/.intermediates/default/java/core-lambda-stubs/android_common/turbine-combined/core-lambda-stubs.jar", - } - bootclasspathTurbineJars := []string{ "out/soong/.intermediates/default/java/stable.core.platform.api.stubs/android_common/turbine/stable.core.platform.api.stubs.jar", "out/soong/.intermediates/default/java/core-lambda-stubs/android_common/turbine/core-lambda-stubs.jar", } - frameworkTurbineCombinedJars := []string{ - "out/soong/.intermediates/default/java/ext/android_common/turbine-combined/ext.jar", - "out/soong/.intermediates/default/java/framework/android_common/turbine-combined/framework.jar", - } - frameworkTurbineJars := []string{ "out/soong/.intermediates/default/java/ext/android_common/turbine/ext.jar", "out/soong/.intermediates/default/java/framework/android_common/turbine/framework.jar", @@ -109,68 +92,8 @@ func TestKotlin(t *testing.T) { barHeaderCombinedInputs []string }{ { - name: "normal", - preparer: android.NullFixturePreparer, - fooKotlincInputs: []string{"a.java", "b.kt"}, - fooJavacInputs: []string{"a.java"}, - fooKotlincClasspath: slices.Concat( - bootclasspathTurbineCombinedJars, - frameworkTurbineCombinedJars, - []string{"out/soong/.intermediates/quz/android_common/turbine-combined/quz.jar"}, - kotlinStdlibTurbineCombinedJars, - ), - fooJavacClasspath: slices.Concat( - []string{"out/soong/.intermediates/foo/android_common/kotlin_headers/foo.jar"}, - frameworkTurbineCombinedJars, - []string{"out/soong/.intermediates/quz/android_common/turbine-combined/quz.jar"}, - kotlinStdlibTurbineCombinedJars, - ), - fooCombinedInputs: slices.Concat( - []string{ - "out/soong/.intermediates/foo/android_common/kotlin/foo.jar", - "out/soong/.intermediates/foo/android_common/javac/foo.jar", - "out/soong/.intermediates/quz/android_common/combined/quz.jar", - }, - kotlinStdlibJavacJars, - ), - fooHeaderCombinedInputs: slices.Concat( - []string{ - "out/soong/.intermediates/foo/android_common/turbine/foo.jar", - "out/soong/.intermediates/foo/android_common/kotlin_headers/foo.jar", - "out/soong/.intermediates/quz/android_common/turbine-combined/quz.jar", - }, - kotlinStdlibTurbineCombinedJars, - ), - - barKotlincInputs: []string{"b.kt"}, - barKotlincClasspath: slices.Concat( - bootclasspathTurbineCombinedJars, - frameworkTurbineCombinedJars, - []string{ - "out/soong/.intermediates/foo/android_common/turbine-combined/foo.jar", - "out/soong/.intermediates/baz/android_common/turbine-combined/baz.jar", - }, - kotlinStdlibTurbineCombinedJars, - ), - barCombinedInputs: slices.Concat( - []string{ - "out/soong/.intermediates/bar/android_common/kotlin/bar.jar", - "out/soong/.intermediates/baz/android_common/combined/baz.jar", - }, - kotlinStdlibJavacJars, - []string{}, - ), - barHeaderCombinedInputs: slices.Concat( - []string{ - "out/soong/.intermediates/bar/android_common/kotlin_headers/bar.jar", - "out/soong/.intermediates/baz/android_common/turbine-combined/baz.jar", - }, - kotlinStdlibTurbineCombinedJars, - ), - }, - { name: "transitive classpath", - preparer: PrepareForTestWithTransitiveClasspathEnabled, + preparer: android.NullFixturePreparer, fooKotlincInputs: []string{"a.java", "b.kt"}, fooJavacInputs: []string{"a.java"}, fooKotlincClasspath: slices.Concat( diff --git a/java/sdk_library_test.go b/java/sdk_library_test.go index 2cb827dc2..431bbacfd 100644 --- a/java/sdk_library_test.go +++ b/java/sdk_library_test.go @@ -149,7 +149,7 @@ func TestJavaSdkLibrary(t *testing.T) { bazJavac := result.ModuleForTests(t, "baz", "android_common").Rule("javac") // tests if baz is actually linked to the stubs lib - android.AssertStringDoesContain(t, "baz javac classpath", bazJavac.Args["classpath"], "foo.stubs.system.jar") + android.AssertStringDoesContain(t, "baz javac classpath", bazJavac.Args["classpath"], "foo.stubs.system.from-text.jar") // ... and not to the impl lib android.AssertStringDoesNotContain(t, "baz javac classpath", bazJavac.Args["classpath"], "foo.jar") // test if baz is not linked to the system variant of foo @@ -157,15 +157,15 @@ func TestJavaSdkLibrary(t *testing.T) { bazTestJavac := result.ModuleForTests(t, "baz-test", "android_common").Rule("javac") // tests if baz-test is actually linked to the test stubs lib - android.AssertStringDoesContain(t, "baz-test javac classpath", bazTestJavac.Args["classpath"], "foo.stubs.test.jar") + android.AssertStringDoesContain(t, "baz-test javac classpath", bazTestJavac.Args["classpath"], "foo.stubs.test.from-text.jar") baz29Javac := result.ModuleForTests(t, "baz-29", "android_common").Rule("javac") // tests if baz-29 is actually linked to the system 29 stubs lib - android.AssertStringDoesContain(t, "baz-29 javac classpath", baz29Javac.Args["classpath"], "prebuilts/sdk/sdk_system_29_foo/android_common/combined/sdk_system_29_foo.jar") + android.AssertStringDoesContain(t, "baz-29 javac classpath", baz29Javac.Args["classpath"], "prebuilts/sdk/sdk_system_29_foo/android_common/local-combined/sdk_system_29_foo.jar") bazModule30Javac := result.ModuleForTests(t, "baz-module-30", "android_common").Rule("javac") // tests if "baz-module-30" is actually linked to the module 30 stubs lib - android.AssertStringDoesContain(t, "baz-module-30 javac classpath", bazModule30Javac.Args["classpath"], "prebuilts/sdk/sdk_module-lib_30_foo/android_common/combined/sdk_module-lib_30_foo.jar") + android.AssertStringDoesContain(t, "baz-module-30 javac classpath", bazModule30Javac.Args["classpath"], "prebuilts/sdk/sdk_module-lib_30_foo/android_common/local-combined/sdk_module-lib_30_foo.jar") // test if baz has exported SDK lib names foo and bar to qux qux := result.ModuleForTests(t, "qux", "android_common") @@ -422,7 +422,7 @@ func TestJavaSdkLibrary_StubOrImplOnlyLibs(t *testing.T) { android.AssertStringContainsEquals(t, "bad classpath for "+sdklib, sdklibCp, "/"+dep+".jar", expected) combineJarInputs := result.ModuleForTests(t, sdklib, "android_common").Rule("combineJar").Inputs.Strings() - depPath := filepath.Join("out", "soong", ".intermediates", dep, "android_common", "turbine-combined", dep+".jar") + depPath := filepath.Join("out", "soong", ".intermediates", dep, "android_common", "turbine", dep+".jar") android.AssertStringListContainsEquals(t, "bad combined inputs for "+sdklib, combineJarInputs, depPath, combined) } for _, expectation := range expectations { @@ -458,7 +458,7 @@ func TestJavaSdkLibrary_DoNotAccessImplWhenItIsNotBuilt(t *testing.T) { // The bar library should depend on the stubs jar. barLibrary := result.ModuleForTests(t, "bar", "android_common").Rule("javac") - if expected, actual := `^-classpath .*:out/soong/[^:]*/turbine-combined/foo\.stubs\.jar$`, barLibrary.Args["classpath"]; !regexp.MustCompile(expected).MatchString(actual) { + if expected, actual := `^-classpath .*:out/soong/[^:]*/foo\.stubs\.from-text/foo\.stubs\.from-text\.jar$`, barLibrary.Args["classpath"]; !regexp.MustCompile(expected).MatchString(actual) { t.Errorf("expected %q, found %#q", expected, actual) } } @@ -791,7 +791,7 @@ func TestJavaSdkLibrary_SystemServer_AccessToStubScopeLibs(t *testing.T) { stubsPath := func(name string, scope *apiScope) string { name = scope.stubsLibraryModuleName(name) - return fmt.Sprintf("out/soong/.intermediates/%[1]s/android_common/turbine-combined/%[1]s.jar", name) + return fmt.Sprintf("out/soong/.intermediates/%[1]s.from-text/android_common/%[1]s.from-text/%[1]s.from-text.jar", name) } // The bar library should depend on the highest (where system server is highest and public is @@ -853,7 +853,7 @@ func TestJavaSdkLibraryImport(t *testing.T) { fooModule := result.ModuleForTests(t, "foo"+scope, "android_common") javac := fooModule.Rule("javac") - sdklibStubsJar := result.ModuleForTests(t, "sdklib.stubs"+scope, "android_common").Output("combined/sdklib.stubs" + scope + ".jar").Output + sdklibStubsJar := result.ModuleForTests(t, "sdklib.stubs"+scope, "android_common").Output("local-combined/sdklib.stubs" + scope + ".jar").Output android.AssertStringDoesContain(t, "foo classpath", javac.Args["classpath"], sdklibStubsJar.String()) } @@ -1002,7 +1002,7 @@ func testJavaSdkLibraryImport_Preferred(t *testing.T, prefer string, preparer an public := result.ModuleForTests(t, "public", "android_common") rule := public.Output("javac/public.jar") inputs := rule.Implicits.Strings() - expected := "out/soong/.intermediates/prebuilt_sdklib.stubs/android_common/combined/sdklib.stubs.jar" + expected := "out/soong/.intermediates/prebuilt_sdklib.stubs/android_common/local-combined/sdklib.stubs.jar" if !android.InList(expected, inputs) { t.Errorf("expected %q to contain %q", inputs, expected) } @@ -1124,12 +1124,12 @@ func TestSdkLibraryImport_MetadataModuleSupersedesPreferred(t *testing.T) { inputs := rule.Implicits.Strings() expectedInputs := []string{ // source - "out/soong/.intermediates/sdklib.prebuilt_preferred_using_legacy_flags.stubs/android_common/turbine-combined/sdklib.prebuilt_preferred_using_legacy_flags.stubs.jar", - "out/soong/.intermediates/sdklib.prebuilt_preferred_using_legacy_flags.stubs.system/android_common/turbine-combined/sdklib.prebuilt_preferred_using_legacy_flags.stubs.system.jar", + "out/soong/.intermediates/sdklib.prebuilt_preferred_using_legacy_flags.stubs.from-text/android_common/sdklib.prebuilt_preferred_using_legacy_flags.stubs.from-text/sdklib.prebuilt_preferred_using_legacy_flags.stubs.from-text.jar", + "out/soong/.intermediates/sdklib.prebuilt_preferred_using_legacy_flags.stubs.system.from-text/android_common/sdklib.prebuilt_preferred_using_legacy_flags.stubs.system.from-text/sdklib.prebuilt_preferred_using_legacy_flags.stubs.system.from-text.jar", // prebuilt - "out/soong/.intermediates/prebuilt_sdklib.source_preferred_using_legacy_flags.stubs/android_common/combined/sdklib.source_preferred_using_legacy_flags.stubs.jar", - "out/soong/.intermediates/prebuilt_sdklib.source_preferred_using_legacy_flags.stubs.system/android_common/combined/sdklib.source_preferred_using_legacy_flags.stubs.system.jar", + "out/soong/.intermediates/prebuilt_sdklib.source_preferred_using_legacy_flags.stubs/android_common/local-combined/sdklib.source_preferred_using_legacy_flags.stubs.jar", + "out/soong/.intermediates/prebuilt_sdklib.source_preferred_using_legacy_flags.stubs.system/android_common/local-combined/sdklib.source_preferred_using_legacy_flags.stubs.system.jar", } for _, expected := range expectedInputs { if !android.InList(expected, inputs) { @@ -1578,7 +1578,8 @@ func TestStubResolutionOfJavaSdkLibraryInLibs(t *testing.T) { public := result.ModuleForTests(t, "mymodule", "android_common") rule := public.Output("javac/mymodule.jar") inputs := rule.Implicits.Strings() - android.AssertStringListContains(t, "Could not find the expected stub on classpath", inputs, "out/soong/.intermediates/sdklib.stubs/android_common/turbine-combined/sdklib.stubs.jar") + android.AssertStringListContains(t, "Could not find the expected stub on classpath", inputs, + "out/soong/.intermediates/sdklib.stubs.from-text/android_common/sdklib.stubs.from-text/sdklib.stubs.from-text.jar") } // test that rdep gets resolved to the correct version of a java_sdk_library (source or a specific prebuilt) @@ -1636,17 +1637,17 @@ func TestMultipleSdkLibraryPrebuilts(t *testing.T) { { desc: "Source library is selected using apex_contributions", selectedDependencyName: "sdklib", - expectedStubPath: "out/soong/.intermediates/sdklib.stubs/android_common/turbine-combined/sdklib.stubs.jar", + expectedStubPath: "out/soong/.intermediates/sdklib.stubs.from-text/android_common/sdklib.stubs.from-text/sdklib.stubs.from-text.jar", }, { desc: "Prebuilt library v1 is selected using apex_contributions", selectedDependencyName: "prebuilt_sdklib.v1", - expectedStubPath: "out/soong/.intermediates/prebuilt_sdklib.v1.stubs/android_common/combined/sdklib.stubs.jar", + expectedStubPath: "out/soong/.intermediates/prebuilt_sdklib.v1.stubs/android_common/local-combined/sdklib.stubs.jar", }, { desc: "Prebuilt library v2 is selected using apex_contributions", selectedDependencyName: "prebuilt_sdklib.v2", - expectedStubPath: "out/soong/.intermediates/prebuilt_sdklib.v2.stubs/android_common/combined/sdklib.stubs.jar", + expectedStubPath: "out/soong/.intermediates/prebuilt_sdklib.v2.stubs/android_common/local-combined/sdklib.stubs.jar", }, } diff --git a/java/sdk_test.go b/java/sdk_test.go index 49983ada2..6386a00d5 100644 --- a/java/sdk_test.go +++ b/java/sdk_test.go @@ -391,21 +391,16 @@ func TestClasspath(t *testing.T) { t.Run("basic", func(t *testing.T) { t.Parallel() - testClasspathTestCases(t, classpathTestcases, false, false) + testClasspathTestCases(t, classpathTestcases, false) }) t.Run("Always_use_prebuilt_sdks=true", func(t *testing.T) { t.Parallel() - testClasspathTestCases(t, classpathTestcases, true, false) - }) - - t.Run("UseTransitiveJarsInClasspath", func(t *testing.T) { - t.Parallel() - testClasspathTestCases(t, classpathTestcases, false, true) + testClasspathTestCases(t, classpathTestcases, true) }) } -func testClasspathTestCases(t *testing.T, classpathTestcases []classpathTestCase, alwaysUsePrebuiltSdks, useTransitiveJarsInClasspath bool) { +func testClasspathTestCases(t *testing.T, classpathTestcases []classpathTestCase, alwaysUsePrebuiltSdks bool) { for _, testcase := range classpathTestcases { if testcase.forAlwaysUsePrebuiltSdks != nil && *testcase.forAlwaysUsePrebuiltSdks != alwaysUsePrebuiltSdks { continue @@ -446,10 +441,8 @@ func testClasspathTestCases(t *testing.T, classpathTestcases []classpathTestCase switch { case e == `""`, strings.HasSuffix(e, ".jar"): ret[i] = e - case useTransitiveJarsInClasspath: - ret[i] = filepath.Join("out", "soong", ".intermediates", defaultJavaDir, e, "android_common", "turbine", e+".jar") default: - ret[i] = filepath.Join("out", "soong", ".intermediates", defaultJavaDir, e, "android_common", "turbine-combined", e+".jar") + ret[i] = filepath.Join("out", "soong", ".intermediates", defaultJavaDir, e, "android_common", "turbine", e+".jar") } } return ret @@ -544,9 +537,6 @@ func testClasspathTestCases(t *testing.T, classpathTestcases []classpathTestCase variables.Always_use_prebuilt_sdks = proptools.BoolPtr(true) }) } - if useTransitiveJarsInClasspath { - preparer = PrepareForTestWithTransitiveClasspathEnabled - } fixtureFactory := android.GroupFixturePreparers( prepareForJavaTest, diff --git a/java/testing.go b/java/testing.go index b3071d7c6..d7878d68d 100644 --- a/java/testing.go +++ b/java/testing.go @@ -824,5 +824,3 @@ func FixtureSetBootImageInstallDirOnDevice(name string, installDir string) andro config.installDir = installDir }) } - -var PrepareForTestWithTransitiveClasspathEnabled = android.PrepareForTestWithBuildFlag("RELEASE_USE_TRANSITIVE_JARS_IN_CLASSPATH", "true") |