Keep the limited visibility rule in this Android.bp though.
Test: m
Merged-In: I6e6d32eb7269411350cdd3f635d9c461edcfcb6f
Change-Id: I6e6d32eb7269411350cdd3f635d9c461edcfcb6f
This rule is already suppressed for main framework code in
framework/Android.bp, but mainline uses a different set of metalava
flags.
Android API council says this is the right thing to do for libraries
which run only on Java 8+, which is true of all mainline modules and
framework code.
Bug: 172180369
Test: AppSearch BatchResultCallback now builds
Merged-In: If81cda012b4627c8018ae54a0f0932ee39d6fd96
Change-Id: If81cda012b4627c8018ae54a0f0932ee39d6fd96
This changes the default visibility of soong modules in this directory
to __subpackages__, from the current public default.
This helps accidental dependencies sneaking in without intent from
the module owner.
Bug: 175604587
Test: m nothing
Merged-In: I1df8b8e087d27f62ce8c09d7e6e32d511efdba6b
Change-Id: I1df8b8e087d27f62ce8c09d7e6e32d511efdba6b
This isn't meant to be used directly, instead one of the default
modules that inherits this rule should be used.
Test: m nothing
Change-Id: I32a20de74c29b9fa1a0083bce084896aad99eb41
This avoids duplicating the compilation of the module java source
code, as well as maintaining the compilation rules in two places.
Bug: 149906971
Test: m FrameworkServicesRoboTests
Change-Id: I1cea62aaedb7e653648130e3d315761c0c9aece4
Merged-In: I1cea62aaedb7e653648130e3d315761c0c9aece4
(partial cherry-pick)
Previously, the droidstubs generated the system-server API into the
current.txt and removed.txt files which are usually associated with the
public API surface. This change moves that specification into the
system-server....txt files and verifies that no public APIs are leaking
into the stubs.
Bug: 155164730
Test: m java
Merged-In: I907533c36dcb6c0ef679b0098d497d88476d8b95
Change-Id: I907533c36dcb6c0ef679b0098d497d88476d8b95
Only populate the targets and dir attributes. The output name
will be autopopulated to the filename, which differs by module.
Bug: 149293194
Test: m dist sdk && find out/dist/apistubs -name 'framework-*.txt'
Change-Id: I8502eb90a10d8b1ca998c2eba5646c662638ce3f
Merged-In: I8502eb90a10d8b1ca998c2eba5646c662638ce3f
(cherry picked from commit a92a23bc69adc6ef61d2052433cea6dab41b91c2)
Without this, we don't get nullability annotations in the stub sources,
nor the stubs themselves, which is a requirement for good interop with
kotlin.
Bug: 157010342
Test: m
Test: javap -c -v out/soong/.intermediates/frameworks/base/apex/media/\
framework/framework-media-stubs-publicapi/android_common/javac/classes/\
android/media/MediaSession2.class | grep Null && echo success || echo fail
Change-Id: I60c82e0fd495d379d7107e43542b846ca50b1e96
Merged-In: I60c82e0fd495d379d7107e43542b846ca50b1e96
Makes the stub libraries accessible to update_prebuilts.py,
so they can be finalized together with their txt files (already dist'd).
Bug: 149293194
Test: m dist sdk && find out/dist -name 'framework-*.jar'
Change-Id: Id4070113bf786bf79573d7b29cd98fcd86e20851
Merged-In: Id4070113bf786bf79573d7b29cd98fcd86e20851
(cherry picked from commit 5259a14d53a51871aef4636aef19b00ae41193b8)
module_current is always built from sources, whereas the
other SDK jars are being transitioned to be composed of
a set of stubs. This avoids the dependency cycle of module
stubs depending on themselves.
Bug: 144149403
Test: m
Change-Id: I31c6d0fa958aa502131352716a9f950828b7829c
Merged-In: I31c6d0fa958aa502131352716a9f950828b7829c
(cherry picked from commit eb34cbee12039167dadcc6ae02ba1aad7b9a08b7)
Previously they were limited to frameworks/base so that they could be
combined into the "main" android stubs. However, limiting their
visibility is inflexible and unnecessary, and due to limitations in the
build system also makes it impossible to create rules for prebuilts of
these module stubs that set `prefer: false`.
This CL makes it possible to disable the prebuilts, which multiple
downstream branches would like to do.
Bug: 159902351
Test: m nothing (with prefer: false on prebuilts)
Change-Id: Id0eee4bf4e78f5dfddf6ad569e49719fefde658e
Merged-In: Id0eee4bf4e78f5dfddf6ad569e49719fefde658e
(cherry picked from commit d346b43c1fff4b74a42258f3591812d26030c7f2)
Keeps Nullable and other source retention annotations in the stubs.
Bug: 157010342
Test: diff_stubs.sh
Change-Id: I4fc66d607276ff885947489afd63e1370ec85939
Merged-In: I4fc66d607276ff885947489afd63e1370ec85939
(cherry picked from commit 01ff6b243febc199ffe718a49374af954c6dbeff)
Previously they were limited to frameworks/base so that they could be
combined into the "main" android stubs. However, limiting their
visibility is inflexible and unnecessary, and due to limitations in the
build system also makes it impossible to create rules for prebuilts of
these module stubs that set `prefer: false`.
This CL makes it possible to disable the prebuilts, which multiple
downstream branches would like to do.
Bug: 159902351
Test: m nothing (with prefer: false on prebuilts)
Change-Id: Id0eee4bf4e78f5dfddf6ad569e49719fefde658e
Previously, the droidstubs generated the system-server API into the
current.txt and removed.txt files which are usually associated with the
public API surface. This change moves that specification into the
system-server....txt files and verifies that no public APIs are leaking
into the stubs.
Bug: 155164730
Test: m java
Change-Id: I907533c36dcb6c0ef679b0098d497d88476d8b95
Prevent dependencies that do not specify an sdk_version from accessing
the implementation library of a framework module by default and force
them to use stubs instead.
Bug: 155164730
Test: m nothing
Change-Id: Ib60e538a4017857eefa3465e56745c00306887e1
Keeps Nullable and other source retention annotations in the stubs.
Bug: 157010342
Test: diff_stubs.sh
Change-Id: I4fc66d607276ff885947489afd63e1370ec85939
Defaults shared library to false as the majority of framework modules
should not be usable as a shared library. The exception is ike but it
does not currently use the defaults and will override this setting
when it does.
(cherry picked from f657ae3ee5a03276591195b9ce99dc5ab2e8201d)
Bug: 156723295
Bug: 155164730
Test: m droid and flash
Change-Id: I3e78994a9855110b02c3d71944ff38b986208e9a
Merged-In: I3e78994a9855110b02c3d71944ff38b986208e9a
Defaults shared library to false as the majority of framework modules
should not be usable as a shared library. The exception is ike but it
does not currently use the defaults and will override this setting
when it does.
Bug: 156723295
Bug: 155164730
Test: m droid and flash
Change-Id: I3e78994a9855110b02c3d71944ff38b986208e9a
This is in line with the main stubs, which use 8. I believe using 9 is
unsuitable because it could generate bytecode that is incompatible with
some developer tooling stuck on 8. Either way, being consistent makes
sense.
Bug: 144149403
Test: diff_stubs.sh
Change-Id: Iddeceeebe9175e53e34f4b4194f01992e3083532
Without this, we don't get nullability annotations in the stub sources,
nor the stubs themselves, which is a requirement for good interop with
kotlin.
Bug: 157010342
Test: m
Test: javap -c -v out/soong/.intermediates/frameworks/base/apex/media/\
framework/framework-media-stubs-publicapi/android_common/javac/classes/\
android/media/MediaSession2.class | grep Null && echo success || echo fail
Change-Id: I60c82e0fd495d379d7107e43542b846ca50b1e96
Provides defaults for java_sdk_library to that are equivalent to those
already used by the framework modules to simplify conversion.
* The java_api_finder is in the defaults as that should be used by
all mainline modules.
* The public/system/module_lib scopes are explicitly specified in the
defaults to include module_lib but exclude test as changing that
behaviour by default would break upwards of 24 existing
java_sdk_library usages.
* The stubs for each API scope is compiled against module_current
because if they compiled against the scope specific sdk version it
would create cycles for "current" and "system_current" because some
of the modules contribute to those.
Test: m update-api
Bug: 155164730
Merged-In: Icd5b893b080d3a8b92b11b856a71b700be96dafa
Change-Id: Icd5b893b080d3a8b92b11b856a71b700be96dafa
(cherry picked from commit bee7404dccbde59077a34d4bcfaab5ada4344617)
Provides defaults for java_sdk_library to that are equivalent to those
already used by the framework modules to simplify conversion.
* The java_api_finder is in the defaults as that should be used by
all mainline modules.
* The public/system/module_lib scopes are explicitly specified in the
defaults to include module_lib but exclude test as changing that
behaviour by default would break upwards of 24 existing
java_sdk_library usages.
* The stubs for each API scope is compiled against module_current
because if they compiled against the scope specific sdk version it
would create cycles for "current" and "system_current" because some
of the modules contribute to those.
Test: m update-api
Bug: 155164730
Change-Id: Icd5b893b080d3a8b92b11b856a71b700be96dafa
This adds checking of module api compatibility to the individual module
api rules. Until now, this checking has been done via the monolithic
metalava runs which we are aiming to get rid of.
Now is a good time to do this because we can compare them to the just
finalized version 30 API, which we have no diffs with. Baseline the
existing wifi failures that metalava fails to find in the previous API.
Bug: 144149403
Test: m checkapi
Change-Id: Id222895daa3a769c265965b052a17d5a1ca18462
Avoids droidstubs doing unnecessary work to create stubs files that are
not actually used.
Bug: 146727827
Test: framework-sdkextensions-api-module_libs_api
Change-Id: Ic537fda99b564877709666025fb8df872144d827
module_current is always built from sources, whereas the
other SDK jars are being transitioned to be composed of
a set of stubs. This avoids the dependency cycle of module
stubs depending on themselves.
Bug: 144149403
Test: m
Change-Id: I31c6d0fa958aa502131352716a9f950828b7829c
Should prevent accidental addition of APIs outside com.android,
which is where we want these APIs to be.
Bug: 149293194
Test: m update-api
Change-Id: I144ce6dbfe524106fc7de87318f66390c31b45af
Merged-In: I144ce6dbfe524106fc7de87318f66390c31b45af