Ensure package check is run for java_library in APEX

Package checks were not being run for java libraries that were in an
APEX and not on the platform. This change fixes that and updates the
script to report all failing classes to make it easier to update the
list of packages.

Test: m java
Bug: 157633658
Change-Id: I28044e08d3a40e9f3464bb2158ef6a28d57264d1
This commit is contained in:
Paul Duffin 2020-05-28 11:36:14 +01:00
parent 9a37d4a602
commit 63d8febd35
2 changed files with 25 additions and 2 deletions

View File

@ -69,7 +69,26 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries {
if !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) { if !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) {
hideFromMake = true hideFromMake = true
} }
if !hideFromMake { if hideFromMake {
// May still need to add some additional dependencies. This will be called
// once for the platform variant (even if it is not being used) and once each
// for the APEX specific variants. In order to avoid adding the dependency
// multiple times only add it for the platform variant.
checkedModulePaths := library.additionalCheckedModules
if library.IsForPlatform() && len(checkedModulePaths) != 0 {
mainEntries = android.AndroidMkEntries{
Class: "FAKE",
// Need at least one output file in order for this to take effect.
OutputFile: android.OptionalPathForPath(checkedModulePaths[0]),
Include: "$(BUILD_PHONY_PACKAGE)",
ExtraEntries: []android.AndroidMkExtraEntriesFunc{
func(entries *android.AndroidMkEntries) {
entries.AddStrings("LOCAL_ADDITIONAL_CHECKED_MODULE", checkedModulePaths.Strings()...)
},
},
}
}
} else {
mainEntries = android.AndroidMkEntries{ mainEntries = android.AndroidMkEntries{
Class: "JAVA_LIBRARIES", Class: "JAVA_LIBRARIES",
DistFile: android.OptionalPathForPath(library.distFile), DistFile: android.OptionalPathForPath(library.distFile),

View File

@ -52,6 +52,7 @@ zip_contents=`zipinfo -1 $jar_file`
# Check all class file names against the expected prefixes. # Check all class file names against the expected prefixes.
old_ifs=${IFS} old_ifs=${IFS}
IFS=$'\n' IFS=$'\n'
failed=false
for zip_entry in ${zip_contents}; do for zip_entry in ${zip_contents}; do
# Check the suffix. # Check the suffix.
if [[ "${zip_entry}" = *.class ]]; then if [[ "${zip_entry}" = *.class ]]; then
@ -65,8 +66,11 @@ for zip_entry in ${zip_contents}; do
done done
if [[ "${found}" == "false" ]]; then if [[ "${found}" == "false" ]]; then
echo "Class file ${zip_entry} is outside specified packages." echo "Class file ${zip_entry} is outside specified packages."
exit 1 failed=true
fi fi
fi fi
done done
if [[ "${failed}" == "true" ]]; then
exit 1
fi
IFS=${old_ifs} IFS=${old_ifs}