From 862da6f2339b30fba4b36ad8c0f39a583933266a Mon Sep 17 00:00:00 2001 From: Jihoon Kang Date: Tue, 1 Aug 2023 06:28:51 +0000 Subject: Add `previous_api` property to `java_api_library` module `Previous_api` is used to migrate nullness information in metalava (i.e. convert @Nullable and @NonNull to @RecentlyNullable and @RecentlyNonNull for some methods). The input is required to generate loosely equivalent from-text stubs. Test: m && compare nullness annotations between from-source stubs and from-text stubs Bug: 293962901 Change-Id: Ic7a0868415fdb2c65d0d472e527fe73280b7651d --- java/java.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'java/java.go') diff --git a/java/java.go b/java/java.go index 6667a52f1..70aba8e2c 100644 --- a/java/java.go +++ b/java/java.go @@ -1683,6 +1683,9 @@ type JavaApiLibraryProperties struct { // extracting the compiled class files provided by the // full_api_surface_stub module. Full_api_surface_stub *string + + // Version of previously released API file for compatibility check. + Previous_api *string `android:"path"` } func ApiLibraryFactory() android.Module { @@ -1890,6 +1893,12 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) { al.stubsFlags(ctx, cmd, stubsDir) + migratingNullability := String(al.properties.Previous_api) != "" + if migratingNullability { + previousApi := android.PathForModuleSrc(ctx, String(al.properties.Previous_api)) + cmd.FlagWithInput("--migrate-nullness ", previousApi) + } + al.stubsSrcJar = android.PathForModuleOut(ctx, "metalava", ctx.ModuleName()+"-"+"stubs.srcjar") al.stubsJarWithoutStaticLibs = android.PathForModuleOut(ctx, "metalava", "stubs.jar") al.stubsJar = android.PathForModuleOut(ctx, ctx.ModuleName(), fmt.Sprintf("%s.jar", ctx.ModuleName())) -- cgit v1.2.3-59-g8ed1b