apex: drop java_import support

java_import doesn't support dex jar which is necessary to be packaged in
an APEX. Supporting this would require non-trivial work. By the way
java_import is not used and there is a workaround.(defining java_library
and static-linking with it)

We drop the support for `java_import` in APEX.

Bug: 139175488
Test: m (soong tests amended)
Change-Id: I924386571079090c701276d87f665ce7fbb6f074
This commit is contained in:
Jooyung Han 2019-12-23 15:38:34 +09:00
parent 7e143af6ee
commit 5a80d9f352
2 changed files with 1 additions and 29 deletions

View file

@ -884,18 +884,6 @@ func apexFileForJavaLibrary(ctx android.BaseModuleContext, lib javaLibrary) apex
return newApexFile(ctx, fileToCopy, lib.Name(), dirInApex, javaSharedLib, lib)
}
func apexFileForPrebuiltJavaLibrary(ctx android.BaseModuleContext, java *java.Import) apexFile {
dirInApex := "javalib"
// The output is only one, but for some reason, ImplementationJars returns Paths, not Path
implJars := java.ImplementationJars()
if len(implJars) != 1 {
panic(fmt.Errorf("java.ImplementationJars() must return single Path, but got: %s",
strings.Join(implJars.Strings(), ", ")))
}
fileToCopy := implJars[0]
return newApexFile(ctx, fileToCopy, java.Name(), dirInApex, javaSharedLib, java)
}
func apexFileForPrebuiltEtc(ctx android.BaseModuleContext, prebuilt android.PrebuiltEtcModule, depName string) apexFile {
dirInApex := filepath.Join("etc", prebuilt.SubDir())
fileToCopy := prebuilt.OutputFile()
@ -1043,13 +1031,6 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
}
filesInfo = append(filesInfo, newApexFile(ctx, pf, pf.Base(), "etc/permissions", etc, nil))
return true // track transitive dependencies
} else if javaLib, ok := child.(*java.Import); ok {
af := apexFileForPrebuiltJavaLibrary(ctx, javaLib)
if !af.Ok() {
ctx.PropertyErrorf("java_libs", "%q does not have a jar output", depName)
} else {
filesInfo = append(filesInfo, af)
}
} else {
ctx.PropertyErrorf("java_libs", "%q of type %q is not supported", depName, ctx.OtherModuleType(child))
}

View file

@ -372,7 +372,7 @@ func TestBasicApex(t *testing.T) {
binaries: ["foo",],
}
},
java_libs: ["myjar", "myprebuiltjar"],
java_libs: ["myjar"],
}
apex {
@ -447,12 +447,6 @@ func TestBasicApex(t *testing.T) {
system_modules: "none",
compile_dex: true,
}
java_import {
name: "myprebuiltjar",
jars: ["prebuilt.jar"],
installable: true,
}
`)
apexRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("apexRule")
@ -470,7 +464,6 @@ func TestBasicApex(t *testing.T) {
// Ensure that apex variant is created for the direct dep
ensureListContains(t, ctx.ModuleVariantsForTests("mylib"), "android_arm64_armv8-a_shared_myapex")
ensureListContains(t, ctx.ModuleVariantsForTests("myjar"), "android_common_myapex")
ensureListContains(t, ctx.ModuleVariantsForTests("myprebuiltjar"), "android_common_myapex")
// Ensure that apex variant is created for the indirect dep
ensureListContains(t, ctx.ModuleVariantsForTests("mylib2"), "android_arm64_armv8-a_shared_myapex")
@ -480,7 +473,6 @@ func TestBasicApex(t *testing.T) {
ensureContains(t, copyCmds, "image.apex/lib64/mylib.so")
ensureContains(t, copyCmds, "image.apex/lib64/mylib2.so")
ensureContains(t, copyCmds, "image.apex/javalib/myjar.jar")
ensureContains(t, copyCmds, "image.apex/javalib/myprebuiltjar.jar")
// .. but not for java libs
ensureNotContains(t, copyCmds, "image.apex/javalib/myotherjar.jar")
@ -489,7 +481,6 @@ func TestBasicApex(t *testing.T) {
ensureListContains(t, ctx.ModuleVariantsForTests("mylib2"), "android_arm64_armv8-a_shared")
ensureListContains(t, ctx.ModuleVariantsForTests("myjar"), "android_common")
ensureListContains(t, ctx.ModuleVariantsForTests("myotherjar"), "android_common")
ensureListContains(t, ctx.ModuleVariantsForTests("myprebuiltjar"), "android_common")
// Ensure that all symlinks are present.
found_foo_link_64 := false