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
diff --git a/apex/apex.go b/apex/apex.go
index 505e1fd..e0ee1ea 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -884,18 +884,6 @@
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 @@
}
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))
}
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 4236ca6..97600b6 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -372,7 +372,7 @@
binaries: ["foo",],
}
},
- java_libs: ["myjar", "myprebuiltjar"],
+ java_libs: ["myjar"],
}
apex {
@@ -447,12 +447,6 @@
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 @@
// 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 @@
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 @@
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