Keep the limited visibility rule in this Android.bp though, to avoid
the unwanted default of "public".
Test: m
Change-Id: I6e6d32eb7269411350cdd3f635d9c461edcfcb6f
(partial cherry-pick)
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
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
Merged-In: Ib60e538a4017857eefa3465e56745c00306887e1
Change-Id: Ib60e538a4017857eefa3465e56745c00306887e1
They shouldn't be installed, so don't generate install rules.
Test: m
Merged-In: I87a6a577b98d1140b5882d4c72f875914d551287
Change-Id: I87a6a577b98d1140b5882d4c72f875914d551287
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
Exempt-From-Owner-Approval: cp
Merged-In: I1df8b8e087d27f62ce8c09d7e6e32d511efdba6b
Change-Id: I1df8b8e087d27f62ce8c09d7e6e32d511efdba6b
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 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
Merged-In: I32a20de74c29b9fa1a0083bce084896aad99eb41
Stub libraries are public. Stub sources and impl library are not.
Bug: 149906971
Test: m nothing
Change-Id: Iadb1c8ba021aa5225d4f5ea13388e843ff846eaa
Merged-In: Iadb1c8ba021aa5225d4f5ea13388e843ff846eaa
(cherry picked from commit 70882b5a56)
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
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.
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
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
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
Use the same whitelist of packages that the non-updatable
part of the platform uses for now. This avoids exposing some
internal classes in a follow-up CL.
Move telephony off the module-wide defaults for now, as the
telephony stubs are causing problems.
Bug: 149293194
Test: m checkapi
Change-Id: Iedc8c309cef8290ac14e1ad32b5b66656145f557
Should prevent accidental addition of APIs outside com.android,
which is where we want these APIs to be.
Also fix a bug in the permission filegroup where it wasn't
specifying the subpath of its code.
Bug: 149293194
Test: m update-api
Change-Id: I144ce6dbfe524106fc7de87318f66390c31b45af
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
Useful to be able to change settings for all stub libs at
the same time. For example, disting these libraries will be
done soon.
Bug: 149293194
Test: followup CLs
Change-Id: I4dda5b44b6d4e76018acb50f46d05816cc4c7f0b
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
To be used by individual modules with service components that
define system_server APIs.
Bug: 147768409
Test: m
Change-Id: Iff6a5a840c5dd7731e881d7db379915375d02324
This adds metalava api tracking generation to the module
stub rules, to make sure we know exactly what API a
particular module stub exports.
Bug: 147768409
Test: m update-api
Exempt-From-Owner-Approval: Approved in master
Change-Id: Iaf2ef5b5751eb208d119ddbc74481239366fe581
Merged-In: Iaf2ef5b5751eb208d119ddbc74481239366fe581
Doing so can make these annotation end up in API tracking files
for modules, which we don't want. Put them on the classpath instead.
Bug: 147768409
Test: m
Change-Id: Ibb044c099174ee8591e14b6e2c683a46c1a756ef
Makes it easier to change when every module isn't specifying
how the stubs are built.
Also make wifi stubs build against the appropriate api surface, which
works around a bug.
Bug: 147768409
Bug: 151134996
Test: m
Change-Id: I91db06ef932a73002b4fe232566f5d111baef432
This change fixes a problem that droidstub modules inheriting from
framework-module-stubs-defaults-* don't emit any source code. The
problem was happening because
1) --show-annotation was with incorrect format; it had trailing
"," in the parameter list and
2) the class SystemApi was not available to metalava, which made
prevented it from processing any API annotated with @SystemApi.
Fixing the problem by forcibly adding framework annotations to the
sources of the default modules.
Bug: 1241127
Test: `m ike-stubs` and check its output
Change-Id: Icbbbddb4fb68055f27aa314983a9c556e51f037a
We will have 4 stubs for each framework module:
- stubs-publicapi with check_api
- stubs-systemapi with check_api
- api-module_api with check_api, just module_api
- stubs-module_api without check_api, module_api + priv_apps
This is because we want the stubs of module_api to include the priv_apps
system APIs, but don't want the api .txt files to contain them.
The check_api attrs will be setup later, when the individual modules
have been set up to inherit these defaults correctly.
Bug: 147768409
Test: m
Change-Id: Ie0fbff6949c8df3d6211558de7373bddb8b95768
Also (hopefully) temporarily filter out com.android.server
from the stubs, as the wifi module has a server class in
it.
Bug: 137191822
Test: m
Change-Id: I2c62fc16c676305e9ee739285f49656075f38b97
Merged-In: I2c62fc16c676305e9ee739285f49656075f38b97
(cherry picked from commit 0c2ebe2bbf)
The new stubs_defaults shall be used to create stub libraries from
modules. The existing defaults
'framework-module-stubs-defaults-systemapi' is not enough because it
only captures the SystemApis with client=PRIVILEGED_APPS. Modules can
have broader SystemApis with client=MODULE_APPS and
client=MODULE_LIBRARIES.
Exempt-From-Owner-Approval: cherry-pick from internal
Bug: b/140202860
Test: m
Merged-In: I5f425928cf1db912ebe09499111a9925fcfc98fb
Change-Id: I5f425928cf1db912ebe09499111a9925fcfc98fb
(cherry picked from commit 2afff6cc73)
As was done in I3305b71e22970e80db95f3daf3d7713603c7d68d for
the other metalava args.
Exempt-From-Owner-Approval: cherry-pick internal
Bug: 140202860
Test: m
Merged-In: I397d361f649f179eada827782d82c002cc7fb2d3
Change-Id: I397d361f649f179eada827782d82c002cc7fb2d3
(cherry picked from commit 14c80cf363)
Add some reasonable defaults that can be reused instead of
duplicating the metalava args for every module.
Bug: 145998881
Test: followup CL depends on these
Change-Id: I31c37289ec38cfc9039a9b2c30b2f3396fc0a72c