Commit Graph

3399 Commits

Author SHA1 Message Date
Liz Kammer
966b2f02fb Add signing lineage for runtime_resource_overlay
Add ability to specify a signing lineage file for
runtime_resource_overlay.

Test: app_test.go
Bug: 153366049
Merged-In: I68286bc0caa9daad6ef74db39f7750924f1d93dd
Change-Id: I68286bc0caa9daad6ef74db39f7750924f1d93dd
2020-05-27 12:18:27 -07:00
Paul Duffin
537d1bf81c Merge "java_sdk_library: Create separate impl library" am: b1e61be41d am: dd9bbf981f
Change-Id: I8894657dfcaa6d5cccf2f704cbb9c9d80ebc8ae4
2020-05-27 17:55:19 +00:00
TreeHugger Robot
753c739e2f Merge "Add preprocessed property for android_test_import" into rvc-dev 2020-05-27 17:21:19 +00:00
Paul Duffin
9d582cc985 java_sdk_library: Create separate impl library
Most dependencies on java_sdk_library instances (JSL) simply reference
them by name and rely on the build to pick the correct part, impl,
stubs for a specific scope, headers or implementation jars or dex jars.
Generally, the build gets that decision right. If it does not the for
most of the components of the JSL there is a way to reference them
directly. However, that is not true for the implementation library as
that is created the JSL itself.

Access to the implementation library should be avoided as it opens up
the possibility that use will be made of an API that is not tracked and
maintained which could lead to compatibility issues. However, there is
a case where use of the implementation library is required and safe.
That is when it is being used from other libraries within the same APEX
as the JSL. In that case the JSL and its dependencies will be updated
together so compatibility is not an issue.

This change adds a new <module>.impl java_library that compiles the
implementation library in the same way as the JSL itself does. This will
allow the modules that are blocked from converting to JSL because of
this limitation to progress. Initially the library is only for use
for compiling but follow up changes will switch the rest of the build
from using the implementation library created by JSL to the separate
module.

It also adds the ability to give the separate .impl library a more
restrictive visibility than the JSL further limiting misuse.

Bug: 156618935
Test: m droid, flash, atest CtsProviderTestCases - sniff test
      tested that it fixes compilation issues with mainline module
Merged-In: Ifc4799feb4ada9dec8021efc13fe6a953bf2edd3
Change-Id: Ifc4799feb4ada9dec8021efc13fe6a953bf2edd3
(cherry picked from commit 5df793011d)
2020-05-27 18:15:57 +01:00
Paul Duffin
b1e61be41d Merge "java_sdk_library: Create separate impl library" 2020-05-27 17:14:15 +00:00
Liz Kammer
258b6cc92f Merge "Add signing lineage for runtime_resource_overlay" into rvc-dev am: 3d8779dd6f
Change-Id: I4557f03e3690c5672f446e7d9f8c9faf7d50b51b
2020-05-27 16:54:13 +00:00
Paul Duffin
2ce1e81b3e java_sdk_library: Add annotations_enabled property
Passes it through to droidstubs.

Bug: 155164730
Test: m droid
Change-Id: I8b23a959ce33716dfc4572488a1fd3f6bab73a17
2020-05-27 17:52:53 +01:00
Artur Satayev
2b4b7bbe82 Generate combined deps-info for all updatable modules.
Introduce a singleton apex rule to merge contents of individual
deps-info results into a single output file.

Bug: 149622332
Test: m
Change-Id: I4ab7e1a3527fead97a81a5a2cb0e1e93a429117c
Merged-In: I4ab7e1a3527fead97a81a5a2cb0e1e93a429117c
Exempt-From-Owner-Approval: cp from aosp
(cherry picked from commit 849f844252)
2020-05-27 17:51:18 +01:00
Ulya Trafimovich
c0eb0b1ae5 Add "updatable" property to ApexModule interface.
For a given variant of a module that implements ApexModule interface,
the "updatable" property tests if this variant comes from an updatable
apex. For platform variants it is always false.

Test: lunch aosp_walleye-userdebug && m nothing
Bug: 138994281
Merged-In: I2d4c54fb397e29dc9b3203be7fb17be4536529f7
Change-Id: I2d4c54fb397e29dc9b3203be7fb17be4536529f7
Exempt-From-Owner-Approval: cp from aosp
(cherry picked from commit 7c140d828a)
2020-05-27 17:50:51 +01:00
Jaewoong Jung
fad5874fe8 Merge "Make android_app_import multi targets arch module." am: 3f2845d251 am: 13ead1de9f
Change-Id: I51ed55b71442712cdb25558a4c4de610e333868f
2020-05-27 16:42:36 +00:00
Liz Kammer
3d8779dd6f Merge "Add signing lineage for runtime_resource_overlay" into rvc-dev 2020-05-27 16:39:20 +00:00
Jaewoong Jung
3f2845d251 Merge "Make android_app_import multi targets arch module." 2020-05-27 16:14:58 +00:00
David Srbecky
38b2a86091 Merge "Allow the user to explicitly set the java Uncompress_dex property." 2020-05-27 13:45:29 +00:00
Paul Duffin
5df793011d java_sdk_library: Create separate impl library
Most dependencies on java_sdk_library instances (JSL) simply reference
them by name and rely on the build to pick the correct part, impl,
stubs for a specific scope, headers or implementation jars or dex jars.
Generally, the build gets that decision right. If it does not the for
most of the components of the JSL there is a way to reference them
directly. However, that is not true for the implementation library as
that is created the JSL itself.

Access to the implementation library should be avoided as it opens up
the possibility that use will be made of an API that is not tracked and
maintained which could lead to compatibility issues. However, there is
a case where use of the implementation library is required and safe.
That is when it is being used from other libraries within the same APEX
as the JSL. In that case the JSL and its dependencies will be updated
together so compatibility is not an issue.

This change adds a new <module>.impl java_library that compiles the
implementation library in the same way as the JSL itself does. This will
allow the modules that are blocked from converting to JSL because of
this limitation to progress. Initially the library is only for use
for compiling but follow up changes will switch the rest of the build
from using the implementation library created by JSL to the separate
module.

It also adds the ability to give the separate .impl library a more
restrictive visibility than the JSL further limiting misuse.

Bug: 156618935
Test: m droid, flash, atest CtsProviderTestCases - sniff test
      tested that it fixes compilation issues with mainline module
Change-Id: Ifc4799feb4ada9dec8021efc13fe6a953bf2edd3
2020-05-27 12:53:26 +01:00
Anton Hansson
ec68fb417e Merge "Improve the structure of the link check method" into rvc-dev am: 5e8c81a91d
Change-Id: I097494045b4ce961b5d0f019e856893e19988e32
2020-05-27 11:20:20 +00:00
Anton Hansson
5e8c81a91d Merge "Improve the structure of the link check method" into rvc-dev 2020-05-27 11:09:53 +00:00
Anton Hansson
f202afab16 Merge "Remove conditional running of checklast during checkapi" am: 54d925e88d am: e64809ff83
Change-Id: I57434cf562fa6c82ec0f329f280fd629e3be4497
2020-05-27 10:58:06 +00:00
Ramy Medhat
c7965cda05 Add support for Metalava implicit dependencies for remote execution.
Test: built aosp crosshatch userdebug with RBE_METALAVA=1
Change-Id: Ic64d98785e34717ef9bdad62b4885085f84f132a
2020-05-27 06:52:46 -04:00
Anton Hansson
54d925e88d Merge "Remove conditional running of checklast during checkapi" 2020-05-27 10:28:41 +00:00
Treehugger Robot
eb8c84ed4e Merge "AIDEGen: Add path attribute to okhttp module." am: c7c7e466ac am: d3205312ed
Change-Id: I229231b44e448f72d896545ef525a6c2f39a5e1f
2020-05-27 07:42:54 +00:00
Treehugger Robot
c7c7e466ac Merge "AIDEGen: Add path attribute to okhttp module." 2020-05-27 07:18:19 +00:00
Paul Duffin
174b26e7d3 Switch droiddoc to use SdkHeaderJars()
Previously, droiddoc was using SdkImplementationJars() to get a JAR to
add to the classpath in order to resolve unknown references in the
source.

Given that SdkHeaderJars() returns jars created by Turbine which are
(for compilation at least) functionally identical to the implementation
jars there is no point in using the implementation jars.

Bug: 148080325
Test: m nothing
Merged-In: I2b718cc1445c04e849dcb0b1f53bba2b0bd90c95
Change-Id: I2b718cc1445c04e849dcb0b1f53bba2b0bd90c95
(cherry picked from commit 649dadfb87)
2020-05-27 07:41:18 +01:00
Paul Duffin
bf19a97965 java_sdk_library: Expose implementation within APEX
Access to the implementation JARs is restricted to avoid code from
depending on implementation details that could change from one release
to the next which could cause compatibility issues. That is not a
problem when referenced from within the APEX that contains the
java_sdk_library.

As references from within the same APEX often need to access
implementation specific details of the java_sdk_library and doing that
from within the same APEX is safe this change all references to a
java_sdk_library made within the same APEX to use the implementation
jars instead of stub jars.

Bug: 155164730
Test: m droid
Change-Id: If239059690de61683c2ad2d8a0ce2e47286a3637
(cherry picked from commit 9b879594ed)
2020-05-27 07:41:18 +01:00
Paul Duffin
2e7ed65fc4 java_sdk_library: Only expose impl jars when they are built
The implementation jars are not built if api_only: true. In that case
the jar paths must not be exposed implicitly as they will be nil and
they will just be ignored.

This change ensures that stubs are returned when the implementation
jars are not built.

Bug: 155164730
Test: m droid
Change-Id: Ic495982a5dcb2754916260e7d91d921a5da288ae
(cherry picked from commit daaa332827)
2020-05-27 07:41:18 +01:00
Paul Duffin
96d9fb7d33 Merge "java_sdk_library: Simplify SdkLibrary.sdkJars" into rvc-dev 2020-05-27 06:37:56 +00:00
TreeHugger Robot
e5138b82ab Merge "Allow the user to explicitly set the java Uncompress_dex property." into rvc-dev am: 6270b775de
Change-Id: If73110d3028a1accf0cf61e6baa3b265f443f763
2020-05-27 04:58:51 +00:00
TreeHugger Robot
6270b775de Merge "Allow the user to explicitly set the java Uncompress_dex property." into rvc-dev 2020-05-27 04:30:37 +00:00
Kousik Kumar
02332a2e8b Merge "Add support for remote-execution / caching of turbine actions" am: 97d095516e am: a858736c86
Change-Id: I3fd5bd5a82f6a69a57f0105ed4eb21ab45651a57
2020-05-27 04:17:07 +00:00
Kousik Kumar
97d095516e Merge "Add support for remote-execution / caching of turbine actions" 2020-05-27 03:41:50 +00:00
Jaewoong Jung
6abfbf7f9c Make android_app_import multi targets arch module.
I made a mistake and only fixed android_test_import in my previous
change, I5bbb2d2b733bbd6b868898285683ba5ff45be10b.

Bug: 154281342
Test: TreeHugger
Test: chromium-webview
Change-Id: I1575d9ef3f8596f1eb8db0867db09de08945d711
2020-05-26 20:10:08 -07:00
Paul Duffin
d5bd8f82aa Switch droiddoc to use SdkHeaderJars() am: 649dadfb87 am: 033f903c76
Change-Id: Ib386420ed0ea9492272019528d445fbf3b1c39a4
2020-05-26 22:08:39 +00:00
Paul Duffin
8ecb28156b java_sdk_library: Expose implementation within APEX am: 9b879594ed am: af853b758f
Change-Id: I428d88113401ab9e6befef2574a01d8579e91c55
2020-05-26 22:08:35 +00:00
Paul Duffin
2fa5ff0d25 java_sdk_library: Only expose impl jars when they are built am: daaa332827 am: d3320c8787
Change-Id: I708870ffee014e50c7bbeb018672bfb9bac03a91
2020-05-26 22:08:22 +00:00
Paul Duffin
00b206ee23 java_sdk_library: Simplify SdkLibrary.sdkJars
The expression !sdkVersion.specified() is equivalent to the following:
    !sdkVersion.valid() || sdkVersion.kind == sdkPrivate

That means that the else if clause "sdkVersion.kind == sdkPrivate" will
never be reached so it was removed.

There is also no need to check sdkVersion.valid() as that will already
have been checked, and an error reported, before this code has been
called. Therefore that has been removed.

Bug: 148080325
Test: m nothing
Merged-In: Ib7c544b48dfb53bad3e15f9f73f71bd05cff9b49
Change-Id: Ib7c544b48dfb53bad3e15f9f73f71bd05cff9b49
(cherry picked from commit c91f5d0cc7)
2020-05-26 20:20:23 +01:00
Paul Duffin
649dadfb87 Switch droiddoc to use SdkHeaderJars()
Previously, droiddoc was using SdkImplementationJars() to get a JAR to
add to the classpath in order to resolve unknown references in the
source.

Given that SdkHeaderJars() returns jars created by Turbine which are
(for compilation at least) functionally identical to the implementation
jars there is no point in using the implementation jars.

Bug: 148080325
Test: m nothing
Change-Id: I2b718cc1445c04e849dcb0b1f53bba2b0bd90c95
2020-05-26 18:32:44 +01:00
Paul Duffin
9b879594ed java_sdk_library: Expose implementation within APEX
Access to the implementation JARs is restricted to avoid code from
depending on implementation details that could change from one release
to the next which could cause compatibility issues. That is not a
problem when referenced from within the APEX that contains the
java_sdk_library.

As references from within the same APEX often need to access
implementation specific details of the java_sdk_library and doing that
from within the same APEX is safe this change all references to a
java_sdk_library made within the same APEX to use the implementation
jars instead of stub jars.

Bug: 155164730
Test: m droid
Change-Id: If239059690de61683c2ad2d8a0ce2e47286a3637
2020-05-26 18:32:44 +01:00
Paul Duffin
daaa332827 java_sdk_library: Only expose impl jars when they are built
The implementation jars are not built if api_only: true. In that case
the jar paths must not be exposed implicitly as they will be nil and
they will just be ignored.

This change ensures that stubs are returned when the implementation
jars are not built.

Bug: 155164730
Test: m droid
Change-Id: Ic495982a5dcb2754916260e7d91d921a5da288ae
2020-05-26 18:32:44 +01:00
Anton Hansson
668b8a21cf Remove conditional running of checklast during checkapi
Since the metalava invocations have been merged into a single one,
and checkapi already requires the other timestamp, this has no effect.

Bug: 151160048
Test: m checkapi
Change-Id: I560058f0f4cdeaedaf247cd35119da2cf0b86ea0
2020-05-26 18:09:33 +01:00
Treehugger Robot
ec50b139e8 Merge "java_sdk_library: Simplify SdkLibrary.sdkJars" am: 3f82e2426e am: 327b94a92a
Change-Id: Icc22089165dbb0e0b6111e3fc6df62144177bd72
2020-05-26 16:16:59 +00:00
Treehugger Robot
3f82e2426e Merge "java_sdk_library: Simplify SdkLibrary.sdkJars" 2020-05-26 15:46:52 +00:00
satayev
84ff6be8e9 Merge "Generate combined deps-info for all updatable modules." am: ede18549e5 am: 3a0a6427bd
Change-Id: I2ae338e9f883695260d922e6607c73770a4c8c04
2020-05-26 14:03:00 +00:00
satayev
ede18549e5 Merge "Generate combined deps-info for all updatable modules." 2020-05-26 13:28:28 +00:00
Paul Duffin
c91f5d0cc7 java_sdk_library: Simplify SdkLibrary.sdkJars
The expression !sdkVersion.specified() is equivalent to the following:
    !sdkVersion.valid() || sdkVersion.kind == sdkPrivate

That means that the else if clause "sdkVersion.kind == sdkPrivate" will
never be reached so it was removed.

There is also no need to check sdkVersion.valid() as that will already
have been checked, and an error reported, before this code has been
called. Therefore that has been removed.

Bug: 148080325
Test: m nothing
Change-Id: Ib7c544b48dfb53bad3e15f9f73f71bd05cff9b49
2020-05-26 11:12:28 +01:00
Paul Duffin
d82eea34e5 Merge changes from topic "disable_shared_library" into rvc-dev am: 2eb4ace0ef
Change-Id: Idfd63ca9823bfcd4a941bf00df32f125498250db
2020-05-26 09:21:51 +00:00
Paul Duffin
007f650bbb Retry: "Improve tracking of exported sdk libraries" am: 64e6199756
Change-Id: I1ce69a094492316ba50da15e44968490f15a8bd8
2020-05-26 09:21:47 +00:00
Paul Duffin
2eb4ace0ef Merge changes from topic "disable_shared_library" into rvc-dev
* changes:
  Retry: "java_sdk_library: Control shared library use"
  Retry: "Improve tracking of exported sdk libraries"
2020-05-26 08:42:03 +00:00
Treehugger Robot
ac80afa642 Refactor RBE support for Javac/R8/D8 to use the remoteexec package.
Bug: b/156613606
Test: build with and without RBE_JAVAC/RBE_R8/RBE_D8 set.
Change-Id: I1607f8cfb4d2c3cbb3672152bbeb561d9968bc60
Merged-In: I1607f8cfb4d2c3cbb3672152bbeb561d9968bc60
2020-05-25 10:57:47 -04:00
Paul Duffin
fe32fd9c02 Merge changes from topic "retry-jsl-stuff" into rvc-dev am: 88ef9fb76e
Change-Id: I84b895c8cfca46cc1e114fdb87fce16127217279
2020-05-25 14:53:54 +00:00
Paul Duffin
88ef9fb76e Merge changes from topic "retry-jsl-stuff" into rvc-dev
* changes:
  Retry: "java_sdk_library: Do not expose stubs implementation jar"
  Retry: "java_sdk_library: Access outputs using tags"
  Retry: "java_sdk_library: Improve consistency with ..._import"
  Retry: "java_sdk_library: Add redirection to module-lib stubs"
  Retry: "java_sdk_library: Extract common stubs redirect code"
2020-05-25 14:38:55 +00:00
Anton Hansson
0bd88d0b4e Correct link type for module stubs
Module stubs compile against module_current, so any module depending on
them had to compile against module_current (or broader) too. Treat them
as the API surface the stubs are for.

Bug: 157010342
Test: m
Change-Id: I49b9082dc1b5afe6c22e94126e574dd8061f0f39
2020-05-25 12:48:41 +01:00