From 1fd005d5b30ce24593d7fe2e7dba43855d6f6466 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Thu, 9 Apr 2020 01:08:11 +0100 Subject: [PATCH] Export API files as part of the java_sdk_library Bug: 153443117 Test: m nothing Change-Id: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de --- java/droiddoc.go | 5 +++++ java/sdk_library.go | 40 ++++++++++++++++++++++++++++++++-------- sdk/java_sdk_test.go | 18 ++++++++++++++++++ 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/java/droiddoc.go b/java/droiddoc.go index 6c3c7ec84..f3a16eadf 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -378,6 +378,7 @@ type ApiFilePath interface { // Provider of information about API stubs, used by java_sdk_library. type ApiStubsProvider interface { ApiFilePath + RemovedApiFilePath() android.Path StubsSrcJar() android.Path } @@ -1266,6 +1267,10 @@ func (d *Droidstubs) ApiFilePath() android.Path { return d.apiFilePath } +func (d *Droidstubs) RemovedApiFilePath() android.Path { + return d.removedApiFile +} + func (d *Droidstubs) StubsSrcJar() android.Path { return d.stubsSrcJar } diff --git a/java/sdk_library.go b/java/sdk_library.go index 9b6d57557..ff80d633b 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -236,10 +236,11 @@ type sdkLibraryProperties struct { } type scopePaths struct { - stubsHeaderPath android.Paths - stubsImplPath android.Paths - apiFilePath android.Path - stubsSrcJar android.Path + stubsHeaderPath android.Paths + stubsImplPath android.Paths + currentApiFilePath android.Path + removedApiFilePath android.Path + stubsSrcJar android.Path } // Common code between sdk library and sdk library import @@ -330,7 +331,8 @@ func (module *SdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) if scopeTag, ok := tag.(scopeDependencyTag); ok { apiScope := scopeTag.apiScope scopePaths := module.getScopePaths(apiScope) - scopePaths.apiFilePath = doc.ApiFilePath() + scopePaths.currentApiFilePath = doc.ApiFilePath() + scopePaths.removedApiFilePath = doc.RemovedApiFilePath() scopePaths.stubsSrcJar = doc.StubsSrcJar() } else { ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag) @@ -831,6 +833,12 @@ type sdkLibraryScopeProperties struct { // The stub sources. Stub_srcs []string `android:"path"` + + // The current.txt + Current_api string `android:"path"` + + // The removed.txt + Removed_api string `android:"path"` } type sdkLibraryImportProperties struct { @@ -1192,9 +1200,11 @@ type sdkLibrarySdkMemberProperties struct { } type scopeProperties struct { - Jars android.Paths - StubsSrcJar android.Path - SdkVersion string + Jars android.Paths + StubsSrcJar android.Path + CurrentApiFile android.Path + RemovedApiFile android.Path + SdkVersion string } func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { @@ -1209,6 +1219,8 @@ func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMembe properties.Jars = jars properties.SdkVersion = apiScope.sdkVersion properties.StubsSrcJar = paths.stubsSrcJar + properties.CurrentApiFile = paths.currentApiFilePath + properties.RemovedApiFile = paths.removedApiFilePath s.Scopes[apiScope] = properties } } @@ -1237,6 +1249,18 @@ func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberCo ctx.SnapshotBuilder().UnzipToSnapshot(properties.StubsSrcJar, snapshotRelativeDir) scopeSet.AddProperty("stub_srcs", []string{snapshotRelativeDir}) + if properties.CurrentApiFile != nil { + currentApiSnapshotPath := filepath.Join(scopeDir, ctx.Name()+".txt") + ctx.SnapshotBuilder().CopyToSnapshot(properties.CurrentApiFile, currentApiSnapshotPath) + scopeSet.AddProperty("current_api", currentApiSnapshotPath) + } + + if properties.RemovedApiFile != nil { + removedApiSnapshotPath := filepath.Join(scopeDir, ctx.Name()+"-removed.txt") + ctx.SnapshotBuilder().CopyToSnapshot(properties.CurrentApiFile, removedApiSnapshotPath) + scopeSet.AddProperty("removed_api", removedApiSnapshotPath) + } + if properties.SdkVersion != "" { scopeSet.AddProperty("sdk_version", properties.SdkVersion) } diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go index 0bac49f78..c0ad35c3f 100644 --- a/sdk/java_sdk_test.go +++ b/sdk/java_sdk_test.go @@ -998,16 +998,22 @@ java_sdk_library_import { public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], + current_api: "sdk_library/public/myjavalib.txt", + removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "current", }, system: { jars: ["sdk_library/system/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], + current_api: "sdk_library/system/myjavalib.txt", + removed_api: "sdk_library/system/myjavalib-removed.txt", sdk_version: "system_current", }, test: { jars: ["sdk_library/test/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], + current_api: "sdk_library/test/myjavalib.txt", + removed_api: "sdk_library/test/myjavalib-removed.txt", sdk_version: "test_current", }, } @@ -1019,16 +1025,22 @@ java_sdk_library_import { public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], + current_api: "sdk_library/public/myjavalib.txt", + removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "current", }, system: { jars: ["sdk_library/system/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/system/myjavalib_stub_sources"], + current_api: "sdk_library/system/myjavalib.txt", + removed_api: "sdk_library/system/myjavalib-removed.txt", sdk_version: "system_current", }, test: { jars: ["sdk_library/test/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/test/myjavalib_stub_sources"], + current_api: "sdk_library/test/myjavalib.txt", + removed_api: "sdk_library/test/myjavalib-removed.txt", sdk_version: "test_current", }, } @@ -1040,8 +1052,14 @@ sdk_snapshot { `), checkAllCopyRules(` .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar +.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt +.intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt .intermediates/myjavalib.stubs.system/android_common/javac/myjavalib.stubs.system.jar -> sdk_library/system/myjavalib-stubs.jar +.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib.txt +.intermediates/myjavalib.stubs.source.system/android_common/myjavalib.stubs.source.system_api.txt -> sdk_library/system/myjavalib-removed.txt .intermediates/myjavalib.stubs.test/android_common/javac/myjavalib.stubs.test.jar -> sdk_library/test/myjavalib-stubs.jar +.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib.txt +.intermediates/myjavalib.stubs.source.test/android_common/myjavalib.stubs.source.test_api.txt -> sdk_library/test/myjavalib-removed.txt `), checkMergeZips( ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip",