sdk_version: "system_server_current"
The new sdk version "system_server_current" is for system server
components that needs to use all public APIs, system APIs, module APIs,
and the system server APIs.
Bug: 146757305
Test: m
Change-Id: I24fd5af010532a110393676607dc90889f2ec17e
diff --git a/java/java.go b/java/java.go
index dd44d06..514bab3 100644
--- a/java/java.go
+++ b/java/java.go
@@ -756,6 +756,7 @@
javaSdk
javaSystem
javaModule
+ javaSystemServer
javaPlatform
)
@@ -789,6 +790,10 @@
return javaModule, true
case ver.kind == sdkModule:
return javaModule, false
+ case name == "services-stubs":
+ return javaSystemServer, true
+ case ver.kind == sdkSystemServer:
+ return javaSystemServer, false
case ver.kind == sdkPrivate || ver.kind == sdkNone || ver.kind == sdkCorePlatform:
return javaPlatform, false
case !ver.valid():
@@ -824,17 +829,23 @@
}
break
case javaSystem:
- if otherLinkType == javaPlatform || otherLinkType == javaModule {
+ if otherLinkType == javaPlatform || otherLinkType == javaModule || otherLinkType == javaSystemServer {
ctx.ModuleErrorf("compiles against system API, but dependency %q is compiling against private API."+commonMessage,
ctx.OtherModuleName(to))
}
break
case javaModule:
- if otherLinkType == javaPlatform {
+ if otherLinkType == javaPlatform || otherLinkType == javaSystemServer {
ctx.ModuleErrorf("compiles against module API, but dependency %q is compiling against private API."+commonMessage,
ctx.OtherModuleName(to))
}
break
+ case javaSystemServer:
+ if otherLinkType == javaPlatform {
+ ctx.ModuleErrorf("compiles against system server API, but dependency %q is compiling against private API."+commonMessage,
+ ctx.OtherModuleName(to))
+ }
+ break
case javaPlatform:
// no restriction on link-type
break
diff --git a/java/sdk.go b/java/sdk.go
index 1c047a3..1e60d67 100644
--- a/java/sdk.go
+++ b/java/sdk.go
@@ -72,6 +72,7 @@
sdkSystem
sdkTest
sdkModule
+ sdkSystemServer
sdkPrivate
)
@@ -94,6 +95,8 @@
return "core_platform"
case sdkModule:
return "module"
+ case sdkSystemServer:
+ return "system_server"
default:
return "invalid"
}
@@ -261,6 +264,8 @@
kind = sdkTest
case "module":
kind = sdkModule
+ case "system_server":
+ kind = sdkSystemServer
default:
return sdkSpec{sdkInvalid, sdkVersionNone, str}
}
@@ -324,13 +329,13 @@
}
}
- toModule := func(m, r string, aidl android.Path) sdkDep {
+ toModule := func(modules []string, res string, aidl android.Path) sdkDep {
return sdkDep{
useModule: true,
- bootclasspath: []string{m, config.DefaultLambdaStubsLibrary},
+ bootclasspath: append(modules, config.DefaultLambdaStubsLibrary),
systemModules: "core-current-stubs-system-modules",
- java9Classpath: []string{m},
- frameworkResModule: r,
+ java9Classpath: modules,
+ frameworkResModule: res,
aidl: android.OptionalPathForPath(aidl),
}
}
@@ -380,16 +385,19 @@
noFrameworksLibs: true,
}
case sdkPublic:
- return toModule("android_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
+ return toModule([]string{"android_stubs_current"}, "framework-res", sdkFrameworkAidlPath(ctx))
case sdkSystem:
- return toModule("android_system_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
+ return toModule([]string{"android_system_stubs_current"}, "framework-res", sdkFrameworkAidlPath(ctx))
case sdkTest:
- return toModule("android_test_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
+ return toModule([]string{"android_test_stubs_current"}, "framework-res", sdkFrameworkAidlPath(ctx))
case sdkCore:
- return toModule("core.current.stubs", "", nil)
+ return toModule([]string{"core.current.stubs"}, "", nil)
case sdkModule:
// TODO(146757305): provide .apk and .aidl that have more APIs for modules
- return toModule("android_module_lib_stubs_current", "framework-res", sdkFrameworkAidlPath(ctx))
+ return toModule([]string{"android_module_lib_stubs_current"}, "framework-res", sdkFrameworkAidlPath(ctx))
+ case sdkSystemServer:
+ // TODO(146757305): provide .apk and .aidl that have more APIs for modules
+ return toModule([]string{"android_module_lib_stubs_current", "services-stubs"}, "framework-res", sdkFrameworkAidlPath(ctx))
default:
panic(fmt.Errorf("invalid sdk %q", sdkVersion.raw))
}
diff --git a/java/sdk_test.go b/java/sdk_test.go
index c815fe3..ea6733d 100644
--- a/java/sdk_test.go
+++ b/java/sdk_test.go
@@ -212,7 +212,6 @@
aidl: "-pprebuilts/sdk/29/public/framework.aidl",
},
{
-
name: "module_current",
properties: `sdk_version: "module_current",`,
bootclasspath: []string{"android_module_lib_stubs_current", "core-lambda-stubs"},
@@ -220,6 +219,14 @@
java9classpath: []string{"android_module_lib_stubs_current"},
aidl: "-p" + buildDir + "/framework.aidl",
},
+ {
+ name: "system_server_current",
+ properties: `sdk_version: "system_server_current",`,
+ bootclasspath: []string{"android_module_lib_stubs_current", "services-stubs", "core-lambda-stubs"},
+ system: "core-current-stubs-system-modules",
+ java9classpath: []string{"android_module_lib_stubs_current", "services-stubs"},
+ aidl: "-p" + buildDir + "/framework.aidl",
+ },
}
for _, testcase := range classpathTestcases {
diff --git a/java/testing.go b/java/testing.go
index 8f979c7..3111109 100644
--- a/java/testing.go
+++ b/java/testing.go
@@ -147,6 +147,7 @@
"android_system_stubs_current",
"android_test_stubs_current",
"android_module_lib_stubs_current",
+ "services-stubs",
"core.current.stubs",
"core.platform.api.stubs",
"kotlin-stdlib",