From 18cf19745e2fffb184a7b42f50609ea98d4adb1d Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Fri, 21 May 2021 22:46:59 +0100 Subject: [PATCH] Remove bootclasspathApiInfo Previously, the bootclasspathApiInfo was only used for tests and follow up changes will need to provide the stub dex jars. This change moves the stubJarsByKind into HiddenAPIInfo and removes bootclasspathApiInfo and the corresponding provider. Bug: 179354495 Test: m nothing Change-Id: I5459c56de561c053ed671dc9d5cb3ee4820c0ee8 --- java/bootclasspath.go | 9 --------- java/bootclasspath_fragment.go | 7 +++---- java/bootclasspath_fragment_test.go | 10 +++++----- java/hiddenapi_modular.go | 3 +++ 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/java/bootclasspath.go b/java/bootclasspath.go index 634959a7e..eddcc838b 100644 --- a/java/bootclasspath.go +++ b/java/bootclasspath.go @@ -235,12 +235,3 @@ func (p BootclasspathAPIProperties) sdkKindToStubLibs() map[android.SdkKind][]st m[android.SdkCorePlatform] = p.Core_platform_api.Stub_libs return m } - -// bootclasspathApiInfo contains paths resolved from BootclasspathAPIProperties -type bootclasspathApiInfo struct { - // stubJarsByKind maps from the android.SdkKind to the paths containing dex stub jars for each - // kind. - stubJarsByKind map[android.SdkKind]android.Paths -} - -var bootclasspathApiInfoProvider = blueprint.NewProvider(bootclasspathApiInfo{}) diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go index 1807ce70f..0d61d82c9 100644 --- a/java/bootclasspath_fragment.go +++ b/java/bootclasspath_fragment.go @@ -507,10 +507,6 @@ func (b *BootclasspathFragmentModule) generateHiddenAPIBuildActions(ctx android. // Create hidden API input structure. input := b.createHiddenAPIFlagInput(ctx, contents) - // Store the information for use by other modules. - bootclasspathApiInfo := bootclasspathApiInfo{stubJarsByKind: input.StubDexJarsByKind} - ctx.SetProvider(bootclasspathApiInfoProvider, bootclasspathApiInfo) - var output *HiddenAPIFlagOutput // Hidden API processing is conditional as a temporary workaround as not all @@ -534,6 +530,9 @@ func (b *BootclasspathFragmentModule) generateHiddenAPIBuildActions(ctx android. // generation. That is because the monolithic hidden API processing uses those flag files to // perform its own flag generation. FlagFilesByCategory: input.FlagFilesByCategory, + + // Make these available for tests. + StubDexJarsByKind: input.StubDexJarsByKind, } if output != nil { diff --git a/java/bootclasspath_fragment_test.go b/java/bootclasspath_fragment_test.go index db284c9ec..f1c9077c7 100644 --- a/java/bootclasspath_fragment_test.go +++ b/java/bootclasspath_fragment_test.go @@ -252,7 +252,7 @@ func TestBootclasspathFragment_StubLibs(t *testing.T) { `) fragment := result.Module("myfragment", "android_common") - info := result.ModuleProvider(fragment, bootclasspathApiInfoProvider).(bootclasspathApiInfo) + info := result.ModuleProvider(fragment, HiddenAPIInfoProvider).(HiddenAPIInfo) stubsJar := "out/soong/.intermediates/mystublib/android_common/dex/mystublib.jar" @@ -264,17 +264,17 @@ func TestBootclasspathFragment_StubLibs(t *testing.T) { otherPublicStubsJar := "out/soong/.intermediates/myothersdklibrary.stubs/android_common/dex/myothersdklibrary.stubs.jar" // Check that SdkPublic uses public stubs for all sdk libraries. - android.AssertPathsRelativeToTopEquals(t, "public dex stubs jar", []string{otherPublicStubsJar, publicStubsJar, stubsJar}, info.stubJarsByKind[android.SdkPublic]) + android.AssertPathsRelativeToTopEquals(t, "public dex stubs jar", []string{otherPublicStubsJar, publicStubsJar, stubsJar}, info.StubDexJarsByKind[android.SdkPublic]) // Check that SdkSystem uses system stubs for mysdklibrary and public stubs for myothersdklibrary // as it does not provide system stubs. - android.AssertPathsRelativeToTopEquals(t, "system dex stubs jar", []string{otherPublicStubsJar, systemStubsJar, stubsJar}, info.stubJarsByKind[android.SdkSystem]) + android.AssertPathsRelativeToTopEquals(t, "system dex stubs jar", []string{otherPublicStubsJar, systemStubsJar, stubsJar}, info.StubDexJarsByKind[android.SdkSystem]) // Check that SdkTest also uses system stubs for mysdklibrary as it does not provide test stubs // and public stubs for myothersdklibrary as it does not provide test stubs either. - android.AssertPathsRelativeToTopEquals(t, "test dex stubs jar", []string{otherPublicStubsJar, systemStubsJar, stubsJar}, info.stubJarsByKind[android.SdkTest]) + android.AssertPathsRelativeToTopEquals(t, "test dex stubs jar", []string{otherPublicStubsJar, systemStubsJar, stubsJar}, info.StubDexJarsByKind[android.SdkTest]) // Check that SdkCorePlatform uses public stubs from the mycoreplatform library. corePlatformStubsJar := "out/soong/.intermediates/mycoreplatform.stubs/android_common/dex/mycoreplatform.stubs.jar" - android.AssertPathsRelativeToTopEquals(t, "core platform dex stubs jar", []string{corePlatformStubsJar}, info.stubJarsByKind[android.SdkCorePlatform]) + android.AssertPathsRelativeToTopEquals(t, "core platform dex stubs jar", []string{corePlatformStubsJar}, info.StubDexJarsByKind[android.SdkCorePlatform]) } diff --git a/java/hiddenapi_modular.go b/java/hiddenapi_modular.go index 0bf39ffe2..94fe2caad 100644 --- a/java/hiddenapi_modular.go +++ b/java/hiddenapi_modular.go @@ -348,6 +348,9 @@ type HiddenAPIInfo struct { // that category. FlagFilesByCategory FlagFilesByCategory + // The paths to the stub dex jars for each of the android.SdkKind in hiddenAPIRelevantSdkKinds. + StubDexJarsByKind StubDexJarsByKind + // The output from the hidden API processing needs to be made available to other modules. HiddenAPIFlagOutput }