diff --git a/apex/Android.bp b/apex/Android.bp index c381c0f100a50..4a65550c616b2 100644 --- a/apex/Android.bp +++ b/apex/Android.bp @@ -63,6 +63,60 @@ mainline_service_stubs_args = "--hide-annotation android.annotation.Hide " + "--hide InternalClasses " // com.android.* classes are okay in this interface +// Defaults for mainline module provided java_sdk_library instances. +java_defaults { + name: "framework-module-defaults", + + // Additional annotations used for compiling both the implementation and the + // stubs libraries. + libs: ["framework-annotations-lib"], + + // Enable api lint. This will eventually become the default for java_sdk_library + // but it cannot yet be turned on because some usages have not been cleaned up. + // TODO(b/156126315) - Remove when no longer needed. + api_lint: { + enabled: true, + }, + + // The API scope specific properties. + public: { + enabled: true, + sdk_version: "module_current", + }, + system: { + enabled: true, + sdk_version: "module_current", + }, + module_lib: { + enabled: true, + sdk_version: "module_current", + }, + + // The stub libraries must be visible to frameworks/base so they can be combined + // into API specific libraries. + stubs_library_visibility: [ + "//frameworks/base", // Framework + ], + + // Set the visibility of the modules creating the stubs source. + stubs_source_visibility: [ + // Ignore any visibility rules specified on the java_sdk_library when + // setting the visibility of the stubs source modules. + "//visibility:override", + + // Currently, the stub source is not required for anything other than building + // the stubs library so is private to avoid misuse. + "//visibility:private", + ], + + // Collates API usages from each module for further analysis. + plugins: ["java_api_finder"], + + // Mainline modules should only rely on 'module_lib' APIs provided by other modules + // and the non updatable parts of the platform. + sdk_version: "module_current", +} + stubs_defaults { name: "framework-module-stubs-defaults-publicapi", args: mainline_framework_stubs_args, diff --git a/apex/sdkextensions/Android.bp b/apex/sdkextensions/Android.bp index dbb5bd3d660ff..fdb078e00d92e 100644 --- a/apex/sdkextensions/Android.bp +++ b/apex/sdkextensions/Android.bp @@ -39,7 +39,7 @@ apex_defaults { sdk { name: "sdkextensions-sdk", - java_header_libs: [ "framework-sdkextensions-stubs-systemapi" ], + java_sdk_libs: [ "framework-sdkextensions" ], } apex_key { diff --git a/apex/sdkextensions/framework/Android.bp b/apex/sdkextensions/framework/Android.bp index 6a787116c005f..b8aad7d8204f6 100644 --- a/apex/sdkextensions/framework/Android.bp +++ b/apex/sdkextensions/framework/Android.bp @@ -25,14 +25,18 @@ filegroup { visibility: [ "//frameworks/base" ] // For the "global" stubs. } -java_library { +java_sdk_library { name: "framework-sdkextensions", srcs: [ ":framework-sdkextensions-sources" ], - sdk_version: "system_current", - libs: [ "framework-annotations-lib" ], + defaults: ["framework-module-defaults"], + + // TODO(b/155480189) - Remove naming_scheme once references have been resolved. + // Temporary java_sdk_library component naming scheme to use to ease the transition from separate + // modules to java_sdk_library. + naming_scheme: "framework-modules", + permitted_packages: [ "android.os.ext" ], installable: true, - plugins: ["java_api_finder"], visibility: [ "//frameworks/base/apex/sdkextensions", "//frameworks/base/apex/sdkextensions/testing", @@ -43,75 +47,3 @@ java_library { "test_com.android.sdkext", ], } - -stubs_defaults { - name: "framework-sdkextensions-stubs-defaults", - srcs: [ ":framework-sdkextensions-sources" ], - libs: [ "framework-annotations-lib" ], - dist: { dest: "framework-sdkextensions.txt" }, -} - -droidstubs { - name: "framework-sdkextensions-stubs-srcs-publicapi", - defaults: [ - "framework-module-stubs-defaults-publicapi", - "framework-sdkextensions-stubs-defaults", - ], -} - -droidstubs { - name: "framework-sdkextensions-stubs-srcs-systemapi", - defaults: [ - "framework-module-stubs-defaults-systemapi", - "framework-sdkextensions-stubs-defaults", - ], -} - -droidstubs { - name: "framework-sdkextensions-api-module_libs_api", - defaults: [ - "framework-module-api-defaults-module_libs_api", - "framework-sdkextensions-stubs-defaults", - ], -} - -droidstubs { - name: "framework-sdkextensions-stubs-srcs-module_libs_api", - defaults: [ - "framework-module-stubs-defaults-module_libs_api", - "framework-sdkextensions-stubs-defaults", - ], -} - -java_library { - name: "framework-sdkextensions-stubs-publicapi", - srcs: [":framework-sdkextensions-stubs-srcs-publicapi"], - defaults: ["framework-module-stubs-lib-defaults-publicapi"], - visibility: [ - "//frameworks/base", // Framework - "//frameworks/base/apex/sdkextensions", // sdkextensions SDK - ], - dist: { dest: "framework-sdkextensions.jar" }, -} - -java_library { - name: "framework-sdkextensions-stubs-systemapi", - srcs: [":framework-sdkextensions-stubs-srcs-systemapi"], - defaults: ["framework-module-stubs-lib-defaults-systemapi"], - visibility: [ - "//frameworks/base", // Framework - "//frameworks/base/apex/sdkextensions", // sdkextensions SDK - ], - dist: { dest: "framework-sdkextensions.jar" }, -} - -java_library { - name: "framework-sdkextensions-stubs-module_libs_api", - srcs: [":framework-sdkextensions-stubs-srcs-module_libs_api"], - defaults: ["framework-module-stubs-lib-defaults-module_libs_api"], - visibility: [ - "//frameworks/base", // Framework - "//frameworks/base/apex/sdkextensions", // sdkextensions SDK - ], - dist: { dest: "framework-sdkextensions.jar" }, -}