diff options
author | Googler <noreply@google.com> | 2018-07-17 15:15:02 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-17 15:17:01 -0700 |
commit | 4d10250291a813302de64151be3b22d57e94749d (patch) | |
tree | 9959e3bc6f20b86871e8a935aedeffda64fe3dd9 | |
parent | 3f37d71fb2f03777b231834646888c68811817a7 (diff) |
Expose AndroidSdkProvider to Skylark (as AndroidSdkInfo).
RELNOTES: None.
PiperOrigin-RevId: 204983634
10 files changed, 447 insertions, 63 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java index bae30630c5..aede909f9d 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java @@ -28,7 +28,8 @@ import javax.annotation.Nullable; /** Returns information about executables produced by a target and the files needed to run it. */ @Immutable @AutoCodec -public final class FilesToRunProvider implements TransitiveInfoProvider, FilesToRunProviderApi { +public final class FilesToRunProvider + implements TransitiveInfoProvider, FilesToRunProviderApi<Artifact> { /** The name of the field in Skylark used to access this class. */ public static final String SKYLARK_NAME = "files_to_run"; diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java index ae481f97c1..9a6e14afb5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java @@ -472,7 +472,8 @@ public final class AndroidRuleClasses { .useOutputLicenses() .allowedRuleClasses("java_toolchain") .value(JavaSemantics.javaToolchainAttribute(environment))) - .advertiseProvider(AndroidSdkProvider.class) + .advertiseSkylarkProvider( + SkylarkProviderIdentifier.forKey(AndroidSdkProvider.PROVIDER.getKey())) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdk.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdk.java index 6ba38ddb12..768e81ac97 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdk.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdk.java @@ -68,9 +68,8 @@ public class AndroidSdk implements RuleConfiguredTargetFactory { } return new RuleConfiguredTargetBuilder(ruleContext) - .addProvider( - AndroidSdkProvider.class, - AndroidSdkProvider.create( + .addNativeDeclaredProvider( + new AndroidSdkProvider( buildToolsVersion, frameworkAidl, aidlLib, diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java index 699a870283..da40eb913f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java @@ -13,23 +13,48 @@ // limitations under the License. package com.google.devtools.build.lib.rules.android; -import com.google.auto.value.AutoValue; +import static com.google.devtools.build.lib.rules.android.AndroidSkylarkData.fromNoneable; + import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.FilesToRunProvider; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.packages.BuiltinProvider; +import com.google.devtools.build.lib.packages.NativeInfo; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; +import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidSdkProviderApi; +import com.google.devtools.build.lib.syntax.EvalException; import javax.annotation.Nullable; /** Description of the tools Blaze needs from an Android SDK. */ -@AutoValue @Immutable -public abstract class AndroidSdkProvider implements TransitiveInfoProvider { - - public static AndroidSdkProvider create( +public final class AndroidSdkProvider extends NativeInfo + implements AndroidSdkProviderApi<Artifact, FilesToRunProvider, TransitiveInfoCollection> { + + public static final String PROVIDER_NAME = "AndroidSdkInfo"; + public static final Provider PROVIDER = new Provider(); + + private final String buildToolsVersion; + private final Artifact frameworkAidl; + private final TransitiveInfoCollection aidlLib; + private final Artifact androidJar; + private final Artifact sourceProperties; + private final Artifact shrinkedAndroidJar; + private final Artifact mainDexClasses; + private final FilesToRunProvider adb; + private final FilesToRunProvider dx; + private final FilesToRunProvider mainDexListCreator; + private final FilesToRunProvider aidl; + private final FilesToRunProvider aapt; + private final FilesToRunProvider aapt2; + private final FilesToRunProvider apkBuilder; + private final FilesToRunProvider apkSigner; + private final FilesToRunProvider proguard; + private final FilesToRunProvider zipalign; + + public AndroidSdkProvider( String buildToolsVersion, Artifact frameworkAidl, @Nullable TransitiveInfoCollection aidlLib, @@ -47,25 +72,24 @@ public abstract class AndroidSdkProvider implements TransitiveInfoProvider { FilesToRunProvider apkSigner, FilesToRunProvider proguard, FilesToRunProvider zipalign) { - - return new AutoValue_AndroidSdkProvider( - buildToolsVersion, - frameworkAidl, - aidlLib, - androidJar, - sourceProperties, - shrinkedAndroidJar, - mainDexClasses, - adb, - dx, - mainDexListCreator, - aidl, - aapt, - aapt2, - apkBuilder, - apkSigner, - proguard, - zipalign); + super(PROVIDER); + this.buildToolsVersion = buildToolsVersion; + this.frameworkAidl = frameworkAidl; + this.aidlLib = aidlLib; + this.androidJar = androidJar; + this.sourceProperties = sourceProperties; + this.shrinkedAndroidJar = shrinkedAndroidJar; + this.mainDexClasses = mainDexClasses; + this.adb = adb; + this.dx = dx; + this.mainDexListCreator = mainDexListCreator; + this.aidl = aidl; + this.aapt = aapt; + this.aapt2 = aapt2; + this.apkBuilder = apkBuilder; + this.apkSigner = apkSigner; + this.proguard = proguard; + this.zipalign = zipalign; } /** @@ -73,7 +97,7 @@ public abstract class AndroidSdkProvider implements TransitiveInfoProvider { * not specified. */ public static AndroidSdkProvider fromRuleContext(RuleContext ruleContext) { - return ruleContext.getPrerequisite(":android_sdk", Mode.TARGET, AndroidSdkProvider.class); + return ruleContext.getPrerequisite(":android_sdk", Mode.TARGET, AndroidSdkProvider.PROVIDER); } /** Throws an error if the Android SDK cannot be found. */ @@ -84,44 +108,142 @@ public abstract class AndroidSdkProvider implements TransitiveInfoProvider { } } - /** The value of build_tools_version. May be null or empty. */ - public abstract String getBuildToolsVersion(); + @Override + public String getBuildToolsVersion() { + return buildToolsVersion; + } - public abstract Artifact getFrameworkAidl(); + @Override + public Artifact getFrameworkAidl() { + return frameworkAidl; + } + @Override @Nullable - public abstract TransitiveInfoCollection getAidlLib(); + public TransitiveInfoCollection getAidlLib() { + return aidlLib; + } - public abstract Artifact getAndroidJar(); + @Override + public Artifact getAndroidJar() { + return androidJar; + } + @Override @Nullable - public abstract Artifact getSourceProperties(); + public Artifact getSourceProperties() { + return sourceProperties; + } - public abstract Artifact getShrinkedAndroidJar(); + @Override + public Artifact getShrinkedAndroidJar() { + return shrinkedAndroidJar; + } - public abstract Artifact getMainDexClasses(); + @Override + public Artifact getMainDexClasses() { + return mainDexClasses; + } - public abstract FilesToRunProvider getAdb(); + @Override + public FilesToRunProvider getAdb() { + return adb; + } - public abstract FilesToRunProvider getDx(); + @Override + public FilesToRunProvider getDx() { + return dx; + } - public abstract FilesToRunProvider getMainDexListCreator(); + @Override + public FilesToRunProvider getMainDexListCreator() { + return mainDexListCreator; + } - public abstract FilesToRunProvider getAidl(); + @Override + public FilesToRunProvider getAidl() { + return aidl; + } - public abstract FilesToRunProvider getAapt(); + @Override + public FilesToRunProvider getAapt() { + return aapt; + } + @Override @Nullable - public abstract FilesToRunProvider getAapt2(); + public FilesToRunProvider getAapt2() { + return aapt2; + } + @Override @Nullable - public abstract FilesToRunProvider getApkBuilder(); + public FilesToRunProvider getApkBuilder() { + return apkBuilder; + } + + @Override + public FilesToRunProvider getApkSigner() { + return apkSigner; + } - public abstract FilesToRunProvider getApkSigner(); + @Override + public FilesToRunProvider getProguard() { + return proguard; + } + + @Override + public FilesToRunProvider getZipalign() { + return zipalign; + } - public abstract FilesToRunProvider getProguard(); + /** The provider can construct the Android SDK provider. */ + public static class Provider extends BuiltinProvider<AndroidSdkProvider> + implements AndroidSdkProviderApi.Provider< + Artifact, FilesToRunProvider, TransitiveInfoCollection> { - public abstract FilesToRunProvider getZipalign(); + private Provider() { + super(PROVIDER_NAME, AndroidSdkProvider.class); + } - AndroidSdkProvider() {} + @Override + public AndroidSdkProvider createInfo( + String buildToolsVersion, + Artifact frameworkAidl, + Object aidlLib, + Artifact androidJar, + Object sourceProperties, + Artifact shrinkedAndroidJar, + Artifact mainDexClasses, + FilesToRunProvider adb, + FilesToRunProvider dx, + FilesToRunProvider mainDexListCreator, + FilesToRunProvider aidl, + FilesToRunProvider aapt, + Object aapt2, + Object apkBuilder, + FilesToRunProvider apkSigner, + FilesToRunProvider proguard, + FilesToRunProvider zipalign) + throws EvalException { + return new AndroidSdkProvider( + buildToolsVersion, + frameworkAidl, + fromNoneable(aidlLib, TransitiveInfoCollection.class), + androidJar, + fromNoneable(sourceProperties, Artifact.class), + shrinkedAndroidJar, + mainDexClasses, + adb, + dx, + mainDexListCreator, + aidl, + aapt, + fromNoneable(aapt2, FilesToRunProvider.class), + fromNoneable(apkBuilder, FilesToRunProvider.class), + apkSigner, + proguard, + zipalign); + } + } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java index 400bb2384e..c954a9fa9e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java @@ -136,14 +136,14 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu .requireSkylarkProviders(forKey(JavaInfo.PROVIDER.getKey())) // Latch onto Skylark toolchains in case they have a "runtime" (b/78647825) .requireSkylarkProviders(forKey(ToolchainInfo.PROVIDER.getKey())) + // For android_sdk rules, where we just want to get at aidl runtime deps. + .requireSkylarkProviders(forKey(AndroidSdkProvider.PROVIDER.getKey())) .requireProviderSets( ImmutableList.of( ImmutableSet.<Class<?>>of(ProtoSourcesProvider.class), // For proto_lang_toolchain rules, where we just want to get at their runtime // deps. - ImmutableSet.<Class<?>>of(ProtoLangToolchainProvider.class), - // For android_sdk rules, where we just want to get at aidl runtime deps. - ImmutableSet.<Class<?>>of(AndroidSdkProvider.class))) + ImmutableSet.<Class<?>>of(ProtoLangToolchainProvider.class))) // Parse labels since we don't have RuleDefinitionEnvironment.getLabel like in a rule .add( attr(ASPECT_DESUGAR_PREREQ, LABEL) @@ -345,8 +345,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu if (compilationInfo == null || compilationInfo.getBootClasspath().isEmpty()) { return ImmutableList.of( ruleContext - .getPrerequisite(":dex_archive_android_sdk", Mode.TARGET) - .getProvider(AndroidSdkProvider.class) + .getPrerequisite(":dex_archive_android_sdk", Mode.TARGET, AndroidSdkProvider.PROVIDER) .getAndroidJar()); } return compilationInfo.getBootClasspath(); diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSdkProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSdkProviderApi.java new file mode 100644 index 0000000000..a1543662b2 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidSdkProviderApi.java @@ -0,0 +1,264 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.skylarkbuildapi.android; + +import com.google.devtools.build.lib.skylarkbuildapi.FileApi; +import com.google.devtools.build.lib.skylarkbuildapi.FilesToRunProviderApi; +import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi; +import com.google.devtools.build.lib.skylarkbuildapi.StructApi; +import com.google.devtools.build.lib.skylarkbuildapi.TransitiveInfoCollectionApi; +import com.google.devtools.build.lib.skylarkinterface.Param; +import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; +import com.google.devtools.build.lib.skylarkinterface.SkylarkConstructor; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.syntax.EvalException; +import javax.annotation.Nullable; + +/** + * Configured targets implementing this provider can contribute Android Sdk information to the + * compilation. + */ +@SkylarkModule(name = "AndroidSdkInfo", doc = "", documented = false) +public interface AndroidSdkProviderApi< + FileT extends FileApi, + FilesToRunProviderT extends FilesToRunProviderApi<FileT>, + TransT extends TransitiveInfoCollectionApi> + extends StructApi { + + /** Name of this info object. */ + public static final String NAME = "AndroidSdkInfo"; + + /** The value of build_tools_version. May be null or empty. */ + @SkylarkCallable(name = "build_tools_version", structField = true, doc = "", documented = false) + String getBuildToolsVersion(); + + @SkylarkCallable( + name = "framework_aidl", + structField = true, + doc = "", + documented = false, + allowReturnNones = true) + FileT getFrameworkAidl(); + + @SkylarkCallable( + name = "aidl_lib", + structField = true, + doc = "", + documented = false, + allowReturnNones = true) + @Nullable + TransT getAidlLib(); + + @SkylarkCallable(name = "android_jar", structField = true, doc = "", documented = false) + FileT getAndroidJar(); + + @SkylarkCallable( + name = "source_properties", + structField = true, + doc = "", + documented = false, + allowReturnNones = true) + @Nullable + FileT getSourceProperties(); + + @SkylarkCallable(name = "shrinked_android_jar", structField = true, doc = "", documented = false) + FileT getShrinkedAndroidJar(); + + @SkylarkCallable(name = "main_dex_classes", structField = true, doc = "", documented = false) + FileT getMainDexClasses(); + + @SkylarkCallable(name = "adb", structField = true, doc = "", documented = false) + FilesToRunProviderT getAdb(); + + @SkylarkCallable(name = "dx", structField = true, doc = "", documented = false) + FilesToRunProviderT getDx(); + + @SkylarkCallable(name = "main_dex_list_creator", structField = true, doc = "", documented = false) + FilesToRunProviderT getMainDexListCreator(); + + @SkylarkCallable(name = "aidl", structField = true, doc = "", documented = false) + FilesToRunProviderT getAidl(); + + @SkylarkCallable(name = "aapt", structField = true, doc = "", documented = false) + FilesToRunProviderT getAapt(); + + @SkylarkCallable( + name = "aapt2", + structField = true, + doc = "", + documented = false, + allowReturnNones = true) + @Nullable + FilesToRunProviderT getAapt2(); + + @SkylarkCallable( + name = "apk_builder", + structField = true, + doc = "", + documented = false, + allowReturnNones = true) + @Nullable + FilesToRunProviderT getApkBuilder(); + + @SkylarkCallable(name = "apk_signer", structField = true, doc = "", documented = false) + FilesToRunProviderT getApkSigner(); + + @SkylarkCallable(name = "proguard", structField = true, doc = "", documented = false) + FilesToRunProviderT getProguard(); + + @SkylarkCallable(name = "zip_align", structField = true, doc = "", documented = false) + FilesToRunProviderT getZipalign(); + + /** The provider implementing this can construct the AndroidSdkInfo provider. */ + @SkylarkModule(name = "Provider", doc = "", documented = false) + public interface Provider< + FileT extends FileApi, + FilesToRunProviderT extends FilesToRunProviderApi<FileT>, + TransT extends TransitiveInfoCollectionApi> + extends ProviderApi { + + @SkylarkCallable( + name = NAME, + doc = "The <code>AndroidSdkInfo</code> constructor.", + parameters = { + @Param( + name = "build_tools_version", + doc = "A string of the build tools version.", + positional = true, + named = false, + type = String.class), + @Param( + name = "framework_aidl", + doc = "An artifact of the AIDL framework.", + positional = true, + named = false, + type = FileApi.class), + @Param( + name = "aidl_lib", + doc = "A transitive info collection of the AIDL lib.", + positional = true, + named = false, + type = TransitiveInfoCollectionApi.class, + noneable = true), + @Param( + name = "android_jar", + doc = "An artifact of the Android Jar.", + positional = true, + named = false, + type = FileApi.class), + @Param( + name = "sourceProperties", + doc = "An artifact of the AIDL lib.", + positional = true, + named = false, + type = FileApi.class, + noneable = true), + @Param( + name = "shrinked_android_jar", + doc = "An artifact of the shrunk Android Jar.", + positional = true, + named = false, + type = FileApi.class), + @Param( + name = "main_dex_classes", + doc = "An artifact of the main dex classes.", + positional = true, + named = false, + type = FileApi.class), + @Param( + name = "adb", + doc = "A files to run provider of ADB.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "dx", + doc = "A files to run provider of Dx.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "main_dex_list_creator", + doc = "A files to run provider of the main dex list creator.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "aidl", + doc = "A files to run provider of AIDL.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "aapt", + doc = "A files to run provider of AAPT.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "aapt2", + doc = "A files to run provider of AAPT2.", + positional = true, + named = false, + type = FilesToRunProviderApi.class, + noneable = true), + @Param( + name = "apk_builder", + doc = "A files to run provider of the Apk builder.", + positional = true, + named = false, + type = FilesToRunProviderApi.class, + noneable = true), + @Param( + name = "apk_signer", + doc = "A files to run provider of the Apk signer.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "proguard", + doc = "A files to run provider of Proguard.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + @Param( + name = "zipalign", + doc = "A files to run provider of Zipalign.", + positional = true, + named = false, + type = FilesToRunProviderApi.class), + }, + selfCall = true) + @SkylarkConstructor(objectType = AndroidSdkProviderApi.class) + AndroidSdkProviderApi<FileT, FilesToRunProviderT, TransT> createInfo( + String buildToolsVersion, + FileT frameworkAidl, + /*noneable*/ Object aidlLib, + FileT androidJar, + /*noneable*/ Object sourceProperties, + FileT shrinkedAndroidJar, + FileT mainDexClasses, + FilesToRunProviderT adb, + FilesToRunProviderT dx, + FilesToRunProviderT mainDexListCreator, + FilesToRunProviderT aidl, + FilesToRunProviderT aapt, + /*noneable*/ Object aapt2, + /*noneable*/ Object apkBuilder, + FilesToRunProviderT apkSigner, + FilesToRunProviderT proguard, + FilesToRunProviderT zipalign) + throws EvalException; + } +} diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java index b1c4e75193..5b6dd7817e 100644 --- a/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java @@ -210,7 +210,7 @@ public class AndroidSdkRepositoryTest extends BuildViewTestCase { ConfiguredTarget androidSdk = getConfiguredTarget("@androidsdk//:sdk"); assertThat(androidSdk).isNotNull(); - assertThat(androidSdk.getProvider(AndroidSdkProvider.class).getBuildToolsVersion()) + assertThat(androidSdk.get(AndroidSdkProvider.PROVIDER).getBuildToolsVersion()) .isEqualTo("26.0.2"); } @@ -230,7 +230,7 @@ public class AndroidSdkRepositoryTest extends BuildViewTestCase { ConfiguredTarget androidSdk = getConfiguredTarget("@androidsdk//:sdk"); assertThat(androidSdk).isNotNull(); - assertThat(androidSdk.getProvider(AndroidSdkProvider.class).getAndroidJar().getExecPathString()) + assertThat(androidSdk.get(AndroidSdkProvider.PROVIDER).getAndroidJar().getExecPathString()) .isEqualTo("external/androidsdk/platforms/android-25/android.jar"); } @@ -253,8 +253,7 @@ public class AndroidSdkRepositoryTest extends BuildViewTestCase { for (int apiLevel : apiLevels) { ConfiguredTarget androidSdk = getConfiguredTarget("@androidsdk//:sdk-" + apiLevel); assertThat(androidSdk).isNotNull(); - assertThat( - androidSdk.getProvider(AndroidSdkProvider.class).getAndroidJar().getExecPathString()) + assertThat(androidSdk.get(AndroidSdkProvider.PROVIDER).getAndroidJar().getExecPathString()) .isEqualTo( String.format("external/androidsdk/platforms/android-%d/android.jar", apiLevel)); } diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java index a02601fced..f269d3dd80 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java @@ -293,7 +293,7 @@ public abstract class AndroidBuildViewTestCase extends BuildViewTestCase { private AndroidSdkProvider getAndroidSdk() { Label sdk = targetConfig.getFragment(AndroidConfiguration.class).getSdk(); - return getConfiguredTarget(sdk, targetConfig).getProvider(AndroidSdkProvider.class); + return getConfiguredTarget(sdk, targetConfig).get(AndroidSdkProvider.PROVIDER); } protected void checkProguardUse(String target, String artifact, boolean expectMapping, diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java index ad167bffae..bb9d76d744 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java @@ -1541,7 +1541,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase { assertThat(linkAction.getInputs()) .containsAllOf( - sdk.getConfiguredTarget().getProvider(AndroidSdkProvider.class).getAndroidJar(), + sdk.getConfiguredTarget().get(AndroidSdkProvider.PROVIDER).getAndroidJar(), getImplicitOutputArtifact( a.getConfiguredTarget(), a.getConfiguration(), diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidSdkTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidSdkTest.java index 6cd3cdea0d..857ff293b2 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidSdkTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidSdkTest.java @@ -44,8 +44,7 @@ public class AndroidSdkTest extends BuildViewTestCase { " shrinked_android_jar = 'android.jar',", " zipalign = 'zipalign',", ")"); - AndroidSdkProvider sdkProvider = - getConfiguredTarget("//sdk").getProvider(AndroidSdkProvider.class); + AndroidSdkProvider sdkProvider = getConfiguredTarget("//sdk").get(AndroidSdkProvider.PROVIDER); assertThat(sdkProvider.getSourceProperties().toDetailString()) .isEqualTo("[/workspace[source]]sdk/platforms/android-25/source.properties"); } |