diff --git a/java/Android.bp b/java/Android.bp index 1fda7f71d..fd06c46fa 100644 --- a/java/Android.bp +++ b/java/Android.bp @@ -38,6 +38,7 @@ bootstrap_go_package { "java_resources.go", "kotlin.go", "lint.go", + "legacy_core_platform_api_usage.go", "platform_compat_config.go", "plugin.go", "prebuilt_apis.go", diff --git a/java/config/config.go b/java/config/config.go index 0fe74c87d..d2f451302 100644 --- a/java/config/config.go +++ b/java/config/config.go @@ -30,6 +30,8 @@ var ( LegacyCorePlatformBootclasspathLibraries = []string{"legacy.core.platform.api.stubs", "core-lambda-stubs"} LegacyCorePlatformSystemModules = "legacy-core-platform-api-stubs-system-modules" + StableCorePlatformBootclasspathLibraries = []string{"stable.core.platform.api.stubs", "core-lambda-stubs"} + StableCorePlatformSystemModules = "stable-core-platform-api-stubs-system-modules" FrameworkLibraries = []string{"ext", "framework"} DefaultLambdaStubsLibrary = "core-lambda-stubs" SdkLambdaStubsPath = "prebuilts/sdk/tools/core-lambda-stubs.jar" diff --git a/java/legacy_core_platform_api_usage.go b/java/legacy_core_platform_api_usage.go new file mode 100644 index 000000000..cb70efaf9 --- /dev/null +++ b/java/legacy_core_platform_api_usage.go @@ -0,0 +1,161 @@ +// Copyright 2020 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package java + +import ( + "android/soong/android" + "android/soong/java/config" +) + +var legacyCorePlatformApiModules = []string{ + "ahat-test-dump", + "android.car", + "android.test.mock", + "android.test.mock.impl", + "AoapTestDeviceApp", + "AoapTestHostApp", + "api-stubs-docs", + "art_cts_jvmti_test_library", + "art-gtest-jars-MyClassNatives", + "BackupFrameworksServicesRoboTests", + "BandwidthEnforcementTest", + "BlockedNumberProvider", + "BluetoothInstrumentationTests", + "BluetoothMidiService", + "car-apps-common", + "CertInstaller", + "ConnectivityManagerTest", + "ContactsProvider", + "core-tests-support", + "CtsContentTestCases", + "CtsIkeTestCases", + "CtsLibcoreWycheproofBCTestCases", + "CtsMediaTestCases", + "CtsNetTestCases", + "CtsNetTestCasesLatestSdk", + "CtsSecurityTestCases", + "CtsUsageStatsTestCases", + "DisplayCutoutEmulationEmu01Overlay", + "DocumentsUIPerfTests", + "DocumentsUITests", + "DownloadProvider", + "DownloadProviderTests", + "DownloadProviderUi", + "DynamicSystemInstallationService", + "EmergencyInfo-lib", + "ethernet-service", + "EthernetServiceTests", + "ExternalStorageProvider", + "ExtServices", + "ExtServices-core", + "framework-all", + "framework-minus-apex", + "FrameworksCoreTests", + "FrameworksIkeTests", + "FrameworksNetCommonTests", + "FrameworksNetTests", + "FrameworksServicesRoboTests", + "FrameworksServicesTests", + "FrameworksUtilTests", + "hid", + "hidl_test_java_java", + "hwbinder", + "ims", + "KeyChain", + "ksoap2", + "LocalTransport", + "lockagent", + "mediaframeworktest", + "MediaProvider", + "MmsService", + "MtpDocumentsProvider", + "MultiDisplayProvider", + "NetworkStackIntegrationTestsLib", + "NetworkStackNextIntegrationTests", + "NetworkStackNextTests", + "NetworkStackTests", + "NetworkStackTestsLib", + "NfcNci", + "platform_library-docs", + "PrintSpooler", + "RollbackTest", + "services", + "services.accessibility", + "services.backup", + "services.core.unboosted", + "services.devicepolicy", + "services.print", + "services.usage", + "services.usb", + "Settings-core", + "SettingsLib", + "SettingsProvider", + "SettingsProviderTest", + "Shell", + "ShellTests", + "sl4a.Common", + "StatementService", + "SystemUI-core", + "SystemUISharedLib", + "SystemUI-tests", + "Telecom", + "TelecomUnitTests", + "telephony-common", + "TelephonyProvider", + "TelephonyProviderTests", + "TeleService", + "testables", + "TetheringTests", + "TetheringTestsLib", + "time_zone_distro_installer", + "time_zone_distro_installer-tests", + "time_zone_distro-tests", + "time_zone_updater", + "TvProvider", + "uiautomator-stubs-docs", + "UsbHostExternalManagementTestApp", + "UserDictionaryProvider", + "WallpaperBackup", + "wifi-service", +} + +var legacyCorePlatformApiLookup = make(map[string]struct{}) + +func init() { + for _, module := range legacyCorePlatformApiModules { + legacyCorePlatformApiLookup[module] = struct{}{} + } +} + +func useLegacyCorePlatformApi(ctx android.EarlyModuleContext) bool { + _, found := legacyCorePlatformApiLookup[ctx.ModuleName()] + return found +} + +func corePlatformSystemModules(ctx android.EarlyModuleContext) string { + if useLegacyCorePlatformApi(ctx) { + return config.LegacyCorePlatformSystemModules + } else { + return config.StableCorePlatformSystemModules + } +} + +func corePlatformBootclasspathLibraries(ctx android.EarlyModuleContext) []string { + if useLegacyCorePlatformApi(ctx) { + return config.LegacyCorePlatformBootclasspathLibraries + } else { + return config.StableCorePlatformBootclasspathLibraries + } +} diff --git a/java/sdk.go b/java/sdk.go index 6564f6d28..6e67a13cd 100644 --- a/java/sdk.go +++ b/java/sdk.go @@ -413,8 +413,8 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep case sdkPrivate: return sdkDep{ useModule: true, - systemModules: config.LegacyCorePlatformSystemModules, - bootclasspath: config.LegacyCorePlatformBootclasspathLibraries, + systemModules: corePlatformSystemModules(ctx), + bootclasspath: corePlatformBootclasspathLibraries(ctx), classpath: config.FrameworkLibraries, frameworkResModule: "framework-res", } @@ -438,8 +438,8 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep case sdkCorePlatform: return sdkDep{ useModule: true, - systemModules: config.LegacyCorePlatformSystemModules, - bootclasspath: config.LegacyCorePlatformBootclasspathLibraries, + systemModules: corePlatformSystemModules(ctx), + bootclasspath: corePlatformBootclasspathLibraries(ctx), noFrameworksLibs: true, } case sdkPublic: diff --git a/java/sdk_test.go b/java/sdk_test.go index 1f23b140c..395da79df 100644 --- a/java/sdk_test.go +++ b/java/sdk_test.go @@ -49,8 +49,8 @@ func TestClasspath(t *testing.T) { }{ { name: "default", - bootclasspath: config.LegacyCorePlatformBootclasspathLibraries, - system: config.LegacyCorePlatformSystemModules, + bootclasspath: config.StableCorePlatformBootclasspathLibraries, + system: config.StableCorePlatformSystemModules, java8classpath: config.FrameworkLibraries, java9classpath: config.FrameworkLibraries, aidl: "-Iframework/aidl", @@ -58,16 +58,16 @@ func TestClasspath(t *testing.T) { { name: `sdk_version:"core_platform"`, properties: `sdk_version:"core_platform"`, - bootclasspath: config.LegacyCorePlatformBootclasspathLibraries, - system: config.LegacyCorePlatformSystemModules, + bootclasspath: config.StableCorePlatformBootclasspathLibraries, + system: config.StableCorePlatformSystemModules, java8classpath: []string{}, aidl: "", }, { name: "blank sdk version", properties: `sdk_version: "",`, - bootclasspath: config.LegacyCorePlatformBootclasspathLibraries, - system: config.LegacyCorePlatformSystemModules, + bootclasspath: config.StableCorePlatformBootclasspathLibraries, + system: config.StableCorePlatformSystemModules, java8classpath: config.FrameworkLibraries, java9classpath: config.FrameworkLibraries, aidl: "-Iframework/aidl", @@ -155,9 +155,9 @@ func TestClasspath(t *testing.T) { { name: "nostdlib system_modules", - properties: `sdk_version: "none", system_modules: "legacy-core-platform-api-stubs-system-modules"`, - system: "legacy-core-platform-api-stubs-system-modules", - bootclasspath: []string{"legacy-core-platform-api-stubs-system-modules-lib"}, + properties: `sdk_version: "none", system_modules: "stable-core-platform-api-stubs-system-modules"`, + system: "stable-core-platform-api-stubs-system-modules", + bootclasspath: []string{"stable-core-platform-api-stubs-system-modules-lib"}, java8classpath: []string{}, }, { diff --git a/java/testing.go b/java/testing.go index 94f054e67..e761743ff 100644 --- a/java/testing.go +++ b/java/testing.go @@ -136,7 +136,7 @@ func GatherRequiredDepsForTest() string { name: "%s", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", } `, extra) } @@ -146,7 +146,7 @@ func GatherRequiredDepsForTest() string { name: "framework", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", aidl: { export_include_dirs: ["framework/aidl"], }, @@ -161,7 +161,7 @@ func GatherRequiredDepsForTest() string { name: "android.hidl.base-V1.0-java", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", installable: true, } @@ -169,7 +169,7 @@ func GatherRequiredDepsForTest() string { name: "android.hidl.manager-V1.0-java", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", installable: true, } @@ -177,7 +177,7 @@ func GatherRequiredDepsForTest() string { name: "org.apache.http.legacy", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", installable: true, } @@ -185,7 +185,7 @@ func GatherRequiredDepsForTest() string { name: "android.test.base", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", installable: true, } @@ -193,7 +193,7 @@ func GatherRequiredDepsForTest() string { name: "android.test.mock", srcs: ["a.java"], sdk_version: "none", - system_modules: "legacy-core-platform-api-stubs-system-modules", + system_modules: "stable-core-platform-api-stubs-system-modules", installable: true, } ` diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go index 6fefc2875..a2198e97b 100644 --- a/sdk/java_sdk_test.go +++ b/sdk/java_sdk_test.go @@ -51,10 +51,10 @@ java_system_modules_import { name: "core-current-stubs-system-modules", } java_system_modules_import { - name: "legacy-core-platform-api-stubs-system-modules", + name: "stable-core-platform-api-stubs-system-modules", } java_import { - name: "legacy.core.platform.api.stubs", + name: "stable.core.platform.api.stubs", } java_import { name: "android_stubs_current",