Loading java/java.go +13 −2 Original line number Diff line number Diff line Loading @@ -807,6 +807,7 @@ const ( javaSdk javaSystem javaModule javaSystemServer javaPlatform ) Loading Loading @@ -840,6 +841,10 @@ func (m *Module) getLinkType(name string) (ret linkType, stubs bool) { 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(): Loading Loading @@ -875,17 +880,23 @@ func checkLinkType(ctx android.ModuleContext, from *Module, to linkTypeContext, } 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 Loading java/sdk.go +17 −9 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ const ( sdkSystem sdkTest sdkModule sdkSystemServer sdkPrivate ) Loading @@ -94,6 +95,8 @@ func (k sdkKind) String() string { return "core_platform" case sdkModule: return "module" case sdkSystemServer: return "system_server" default: return "invalid" } Loading Loading @@ -261,6 +264,8 @@ func sdkSpecFrom(str string) sdkSpec { kind = sdkTest case "module": kind = sdkModule case "system_server": kind = sdkSystemServer default: return sdkSpec{sdkInvalid, sdkVersionNone, str} } Loading Loading @@ -324,13 +329,13 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep } } 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), } } Loading Loading @@ -380,16 +385,19 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep 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)) } Loading java/sdk_test.go +8 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ func TestClasspath(t *testing.T) { 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"}, Loading @@ -220,6 +219,14 @@ func TestClasspath(t *testing.T) { 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 { Loading java/testing.go +1 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ func GatherRequiredDepsForTest() string { "android_system_stubs_current", "android_test_stubs_current", "android_module_lib_stubs_current", "services-stubs", "core.current.stubs", "core.platform.api.stubs", "kotlin-stdlib", Loading Loading
java/java.go +13 −2 Original line number Diff line number Diff line Loading @@ -807,6 +807,7 @@ const ( javaSdk javaSystem javaModule javaSystemServer javaPlatform ) Loading Loading @@ -840,6 +841,10 @@ func (m *Module) getLinkType(name string) (ret linkType, stubs bool) { 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(): Loading Loading @@ -875,17 +880,23 @@ func checkLinkType(ctx android.ModuleContext, from *Module, to linkTypeContext, } 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 Loading
java/sdk.go +17 −9 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ const ( sdkSystem sdkTest sdkModule sdkSystemServer sdkPrivate ) Loading @@ -94,6 +95,8 @@ func (k sdkKind) String() string { return "core_platform" case sdkModule: return "module" case sdkSystemServer: return "system_server" default: return "invalid" } Loading Loading @@ -261,6 +264,8 @@ func sdkSpecFrom(str string) sdkSpec { kind = sdkTest case "module": kind = sdkModule case "system_server": kind = sdkSystemServer default: return sdkSpec{sdkInvalid, sdkVersionNone, str} } Loading Loading @@ -324,13 +329,13 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep } } 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), } } Loading Loading @@ -380,16 +385,19 @@ func decodeSdkDep(ctx android.EarlyModuleContext, sdkContext sdkContext) sdkDep 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)) } Loading
java/sdk_test.go +8 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,6 @@ func TestClasspath(t *testing.T) { 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"}, Loading @@ -220,6 +219,14 @@ func TestClasspath(t *testing.T) { 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 { Loading
java/testing.go +1 −0 Original line number Diff line number Diff line Loading @@ -147,6 +147,7 @@ func GatherRequiredDepsForTest() string { "android_system_stubs_current", "android_test_stubs_current", "android_module_lib_stubs_current", "services-stubs", "core.current.stubs", "core.platform.api.stubs", "kotlin-stdlib", Loading